Programación General > C/C++

 Librería STL

(1/1)

player_:
Hola, podéis indicarme dónde conseguir la librería STL para C++?

Estoy usando ubuntu y como compilador el geany (parece que no la trae por defecto porque he hecho una prueba y no funciona).

Gracias.

Epa:
la STL no es UNA libraria, sino un conjunto de plantillas. Que son las standard.

Si ya tenes el compilador es muy raro que no las tengas. Es probalbe que geany sea solo un ide, y no un compilador.

Cuelquier cosa pone el la terminal:

sudo aptitude install build-essential

que te instala compiladores, STL y librerias posix entre otras cosas.

Saludos

player_:
Gracias por contestar. Poniendo lo de build-essential se ha solucionado.

Saludos.

player_:
Y para pasar como parámetro de una función un vector creado con stl, es correcto así, pasándolo por referencia?


--- Código: C++ --- void ImprimirVector(vector<int> &v){//Código } int main(){    vector<int> v;    //Llenamos el vector    ImprimirVector(v);} 
Gracias.

alb:

--- Cita de: "player_" ---Y para pasar como parámetro de una función un vector creado con stl, es correcto así, pasándolo por referencia?
--- Fin de la cita ---
Si, es correcto pasarlo por referencia (posiblemente const).
Pero me dado cuenta que cada vèz que pasaba tal parametro (un std::vector, std::list, etc.), acababa por echarlo de menos. Prifiero ahora pasar iterators:

--- Código: C++ ---#include <iostream>#include <vector>void dump_vector(std::vector<int>::const_iterator begin_,std::vector<int>::const_iterator end_){    for(;begin_!=end_;++begin_)    {        std::cout<<*begin_<<"n";    }} void fill_vector(std::vector<int>::iterator begin_,std::vector<int>::size_type count_, int value_){   for(;count_>0;--count_,++begin_)   {      *begin_ = value_;   }} int main(){    std::vector<int> v;    v.resize(10);    fill_vector(v.begin(),10,1);    dump_vector(v.begin(),v.end());    return 0;}  
Tambien me di cuenta que muchas cosas son posibles sin esfuerto con la STL :

--- Código: C++ ---#include <iostream>#include <vector>#include <algorithm>#include <iterator> int main(){    std::vector<int> v;    std::fill_n(std::back_inserter(v),10,1); // igual que fill_vector pero todo en standard    std::copy(v.begin(),v.end(),std::ostream_iterator<int>(std::cout,",")); // igual que dump_vector pero todo con standard    std::cout<<"n";    return 0;}  

Navegación

[0] Índice de Mensajes

Ir a la versión completa