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
¿Por qué está bien devolver un 'vector' de una función?
Considere este código. He visto este tipo de código varias veces. wordses un vector local. ¿Cómo es posible devolverlo desde una función? ¿Podemos garantizar que no morirá? std::vector<std::string> read_file(const std::string& path) { std::ifstream file("E:\\names.txt"); if (!file.is_open()) { std::cerr << "Unable to open file" << "\n"; std::exit(-1); } std::vector<string> words;//this vector …



5
Usando std personalizado :: set comparator
На этот вопрос есть ответы на Stack Overflow на русском : Компаратор для set Estoy tratando de cambiar el orden predeterminado de los elementos en un conjunto de enteros para que sean lexicográficos en lugar de numéricos, y no puedo compilar lo siguiente con g ++: file.cpp: bool lex_compare(const int64_t …
106 c++  stl 

10
¿Por qué std :: set no tiene una función miembro "contiene"?
Lo uso mucho std::set<int>y, a menudo, simplemente necesito verificar si dicho conjunto contiene un número o no. Me resultaría natural escribir: if (myset.contains(number)) ... Pero debido a la falta de un containsmiembro, necesito escribir lo engorroso: if (myset.find(number) != myset.end()) .. o lo no tan obvio: if (myset.count(element) > 0) …
103 c++  stl  stdset 


6
cadena c_str () frente a datos ()
He leído en varios lugares que la diferencia entre c_str()y data()(en STL y otras implementaciones) es que c_str()siempre termina en nulo mientras data()que no. Por lo que he visto en implementaciones reales, hacen lo mismo o data()llaman c_str(). ¿Que me estoy perdiendo aqui? ¿Cuál es más correcto de usar en …
102 c++  stl  c-str 

5
Borrar elementos de un vector
Quiero borrar un elemento de un vector usando el método de borrado. Pero el problema aquí es que no se garantiza que el elemento ocurra solo una vez en el vector. Puede estar presente varias veces y necesito borrarlas todas. Mi código es algo como esto: void erase(std::vector<int>& myNumbers_in, int …
101 c++  vector  stl  erase 

3
¿Es lenta la implementación de gcc std :: unordered_map? Si es así, ¿por qué?
Estamos desarrollando un software crítico de alto rendimiento en C ++. Allí necesitamos un mapa hash concurrente y uno implementado. Así que escribimos un punto de referencia para averiguar con qué velocidad se compara nuestro mapa hash concurrente std::unordered_map. Pero, std::unordered_mapparece ser increíblemente lento ... Así que este es nuestro …

4
Acceso a elementos de mapa const de C ++
Intenté usar el operador [] para acceder al elemento en un mapa constante de C ++, pero este método falló. También intenté usar "at ()" para hacer lo mismo. Funcionó esta vez. Sin embargo, no pude encontrar ninguna referencia sobre el uso de "at ()" para acceder al elemento en …
100 c++  stl  map  const 

2
¿Por qué se introdujo std :: ssize () en C ++ 20?
C ++ 20 introdujo la std::ssize()función gratuita de la siguiente manera: template <class C> constexpr auto ssize(const C& c) -> std::common_type_t<std::ptrdiff_t, std::make_signed_t<decltype(c.size())>>; Una posible implementación parece utilizar static_castpara convertir el valor de retorno de la size()función miembro de cl ass C en su contraparte firmada. Dado que la size()función miembro …
99 c++  stl  unsigned  signed  c++20 

6
¿Por qué vector <bool> no es un contenedor STL?
El artículo 18 del libro de Scott Meyers Effective STL: 50 Specific Ways to Mejorar el uso de la biblioteca de plantillas estándar dice que se debe evitar, vector &lt;bool&gt;ya que no es un contenedor STL y en realidad no contiene bools. El siguiente código: vector &lt;bool&gt; v; bool *pb …


6
¿Forma moderna de filtrar el contenedor STL?
Volviendo a C ++ después de años de C #, me preguntaba cuál sería la forma moderna (léase: C ++ 11) de filtrar una matriz, es decir, cómo podemos lograr algo similar a esta consulta de Linq: var filteredElements = elements.Where(elm =&gt; elm.filterProperty == true); ¿Para filtrar un vector de …
98 c++  c++11  stl 

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.