Preguntas etiquetadas con stl

La Biblioteca de plantillas estándar, o STL, es una biblioteca C ++ de contenedores genéricos, iteradores, algoritmos y objetos de función. Cuando C ++ se estandarizó, grandes partes de la STL se adoptaron en la Biblioteca estándar, y estas partes en la Biblioteca estándar también se denominan a veces erróneamente colectivamente como "la STL".


6
¿Cómo especifico un puntero a una función sobrecargada?
Quiero pasar una función sobrecargada al std::for_each()algoritmo. Por ejemplo, class A { void f(char c); void f(int i); void scan(const std::string& s) { std::for_each(s.begin(), s.end(), f); } }; Esperaría que el compilador se resuelva f()por el tipo de iterador. Aparentemente, (GCC 4.1.2) no lo hace. Entonces, ¿cómo puedo especificar cuál …
137 c++  stl 

5
C ++ Operador de doble dirección? (&&)
Estoy leyendo el código fuente STL y no tengo idea de qué &&se supone que debe hacer el operador de dirección. Aquí hay un ejemplo de código de stl_vector.h: vector& operator=(vector&& __x) // <-- Note double ampersands here { // NB: DR 675. this->clear(); this->swap(__x); return *this; } ¿Tiene sentido …



2
¿Cómo establecer el tamaño inicial de std :: vector?
Tengo un vector<CustomClass*>y pongo muchos elementos en el vector y necesito un acceso rápido, por lo que no uso la lista. ¿Cómo establecer el tamaño inicial del vector (por ejemplo, 20 000 lugares, para evitar copiar cuando inserto uno nuevo)?
130 c++  stl 

7
¿Por qué std :: queue :: pop no devuelve el valor?
Revisé esta página pero no puedo obtener el motivo de la misma. Allí se menciona que "Es más sensato que no devuelva ningún valor y que requiera que los clientes usen front () para inspeccionar el valor al principio de la cola" Pero inspeccionar un elemento desde front () también …
123 c++  stl 




13
remove_if equivalente para std :: map
Estaba tratando de borrar una variedad de elementos del mapa en función de una condición particular. ¿Cómo lo hago usando algoritmos STL? Inicialmente pensé en usar, remove_ifpero no es posible ya que remove_if no funciona para el contenedor asociativo. ¿Existe algún algoritmo equivalente "remove_if" que funcione para el mapa? Como …
118 c++  stl  map 


4
Cómo sobrecargar std :: swap ()
std::swap()es utilizado por muchos contenedores estándar (como std::listy std::vector) durante la clasificación e incluso la asignación. Pero la implementación estándar de swap()es muy generalizada y bastante ineficiente para los tipos personalizados. Por lo tanto, se puede ganar eficiencia sobrecargando std::swap()con una implementación específica de tipo personalizado. Pero, ¿cómo puede implementarlo …

5
El acceso al mapa de C ++ descarta los calificadores (const)
El siguiente código dice que pasar el mapa como consten el operator[]método descarta los calificadores: #include <iostream> #include <map> #include <string> using namespace std; class MapWrapper { public: const int &get_value(const int &key) const { return _map[key]; } private: map<int, int> _map; }; int main() { MapWrapper mw; cout << …
113 c++  stl  const  maps 

9
¿Cuál es la forma preferida / idiomática de insertar en un mapa?
He identificado cuatro formas diferentes de insertar elementos en un std::map: std::map<int, int> function; function[0] = 42; function.insert(std::map<int, int>::value_type(0, 42)); function.insert(std::pair<int, int>(0, 42)); function.insert(std::make_pair(0, 42)); ¿Cuál de esas es la forma preferida / idiomática? (¿Y hay otra forma en la que no he pensado?)
111 c++  stl  insert  stdmap  std-pair 

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.