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".

7
¿Por qué no podemos declarar un std :: vector <AbstractClass>?
Habiendo pasado bastante tiempo desarrollando en C #, noté que si declara una clase abstracta con el propósito de usarla como interfaz, no puede crear una instancia de un vector de esta clase abstracta para almacenar instancias de las clases secundarias. #pragma once #include &lt;iostream&gt; #include &lt;vector&gt; using namespace std; …

10
¿Por qué preferiría usar vector para deque
Ya que ambos son contenedores de memoria contiguos; En cuanto a las características, deque tiene casi todo lo que tiene el vector, pero más, ya que es más eficiente insertarlo en el frente. ¿Por qué alguien preferiría std::vectorhacerlo std::deque?
86 c++  stl  vector  deque 

12
Copie los valores del mapa en un vector en STL
Trabajando a través de STL efectivo en este momento. El ítem 5 sugiere que generalmente es preferible usar funciones de miembros de rango a sus contrapartes de un solo elemento. Actualmente deseo copiar todos los valores en un mapa (es decir, no necesito las claves) en un vector. ¿Cuál es …
85 c++  stl  containers 

6
¿Por qué necesito std :: get_temporary_buffer?
¿Con qué propósito debo usar std::get_temporary_buffer? Standard dice lo siguiente: Obtiene un puntero de almacenamiento suficiente para almacenar hasta n objetos T adyacentes. Pensé que el búfer se asignará a la pila, pero eso no es cierto. Según el estándar C ++, este búfer en realidad no es temporal. ¿Qué …

8
No se pueden incluir encabezados C ++ como vector en Android NDK
Cuando intento incluir cualquier clase de C ++ como vector en mi proyecto NDK de Android (usando NDK r5b, el último), aparece un error como el siguiente ... Compile++ thumb : test-libstl &lt;= test-libstl.cpp /Users/nitrex88/Desktop/Programming/EclipseProjects/STLTest/jni/test-libstl.cpp:3:18: error: vector: No such file or directory Otras personas que informaron sobre este problema en …

7
En std :: multiset, ¿hay una función o algoritmo para borrar solo una muestra (unicada o duplicada) si se encuentra un elemento?
Tal vez esto es un duplicado, pero no encontré nada de búsqueda: Cuando erase(value)se pidió a std::multisettodos los elementos con el valor encontrado se eliminan. La única solución que se me ocurre es: std::multiset&lt;int&gt;::iterator hit(mySet.find(5)); if (hit!= mySet.end()) mySet.erase(hit); Esto está bien, pero pensé que podría haber algo mejor. Algunas …
83 c++  stl  multiset 

15
use std :: fill para poblar el vector con números crecientes
Me gustaría completar un vector&lt;int&gt;uso std::fill, pero en lugar de un valor, el vector debe contener números en orden creciente después. Intenté lograr esto iterando el tercer parámetro de la función en uno, pero esto solo me daría vectores llenos de 1 o 2 (dependiendo de la posición del ++operador). …
82 c++  stl 


12
char * vs std :: string en c ++ [cerrado]
Tal como está actualmente, esta pregunta no se ajusta bien a nuestro formato de preguntas y respuestas. Esperamos que las respuestas estén respaldadas por hechos, referencias o experiencia, pero es probable que esta pregunta solicite debate, argumentos, encuestas o una discusión extensa. Si cree que esta pregunta se puede mejorar …
81 c++  stl  stdstring  arrays 

15
Cómo implosionar un vector de cuerdas en una cuerda (la forma elegante)
Estoy buscando la forma más elegante de convertir un vector de cuerdas en una cuerda. A continuación se muestra la solución que estoy usando ahora: static std::string&amp; implode(const std::vector&lt;std::string&gt;&amp; elems, char delim, std::string&amp; s) { for (std::vector&lt;std::string&gt;::const_iterator ii = elems.begin(); ii != elems.end(); ++ii) { s += (*ii); if ( …
81 c++  string  stl  stdstring  implode 

6
std :: vector :: resize () frente a std :: vector :: reserve ()
Hay un hilo en la sección de comentarios de este post sobre el uso std::vector::reserve()vs std::vector::resize(). Aquí está el código original: void MyClass::my_method() { my_member.reserve(n_dim); for(int k = 0 ; k &lt; n_dim ; k++ ) my_member[k] = k ; } Creo que para escribir elementos en el vector, lo …
80 c++  stl  vector 

5
¿Cómo usar la cola de prioridad STL para objetos?
class Person { public: int age; }; Quiero almacenar objetos de la clase Person en una cola de prioridad. priority_queue&lt; Person, vector&lt;Person&gt;, ??? &gt; Creo que necesito definir una clase para la comparación, pero no estoy seguro. Además, cuando escribimos, priority_queue&lt; int, vector&lt;int&gt;, greater&lt;int&gt; &gt; ¿Cómo funciona el mayor?
80 c++  stl 

7
excepción de c ++: lanzando std :: string
Me gustaría lanzar una excepción cuando mis métodos de C ++ encuentran algo extraño y no se pueden recuperar. ¿Está bien lanzar un std::stringpuntero? Esto es lo que estaba deseando hacer: void Foo::Bar() { if(!QueryPerformanceTimer(&amp;m_baz)) { throw new std::string("it's the end of the world!"); } } void Foo::Caller() { try …
80 c++  exception  stl 


10
cómo inicializar 'const std :: vector <T>' como una matriz de CA
¿Existe una forma elegante de crear e inicializar un me const std::vector&lt;const T&gt;gusta const T a[] = { ... }para un número fijo (y pequeño) de valores? Necesito llamar a una función con frecuencia que espera una vector&lt;T&gt;, pero estos valores nunca cambiarán en mi caso. En principio pensé en …
79 c++  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.