Articles of stl

C ++ 11 contenedores STL y seguridad de rosca

Tengo problemas para encontrar información actualizada al respecto. ¿Las versiones C ++ 11 de los contenedores STL tienen algún nivel de seguridad de hilo garantizado? Espero que no lo hagan, por motivos de rendimiento. Pero, una vez más, es por eso que tenemos std::vector::operator[] y std::vector::at .

Haciendo que map :: find funcione sin distinguir entre mayúsculas y minúsculas

¿El mapa :: encuentra el método de soporte de búsqueda insensible a mayúsculas y minúsculas? Tengo un mapa de la siguiente manera map<string,vector > directory; y quiere que la búsqueda a continuación ignore el caso. directory.find(search_string);

vector o mapa, ¿cuál usar?

He escuchado a muchas personas decir que si la cantidad de elementos que se esperan en el contenedor es relativamente pequeña, es mejor usar std::vector lugar de std::map aunque utilizo el contenedor solo para buscar y no para iterar. ¿Cuál es la verdadera razón detrás de esto? Obviamente, el rendimiento de búsqueda del mapa no […]

matriz vs vector vs lista

Estoy manteniendo una tabla de longitud fija de 10 entradas. Cada elemento es una estructura de 4 campos similares. Habrá operaciones de inserción, actualización y eliminación, especificadas por posición numérica. Me pregunto cuál es la mejor estructura de datos para usar para mantener esta tabla de información: array – insertar / eliminar toma tiempo lineal […]

forma rápida de copiar un vector en otro

Prefiero dos formas: void copyVecFast(const vec& original) { vector newVec; newVec.reserve(original.size()); copy(original.begin(),original.end(),back_inserter(newVec)); } void copyVecFast(vec& original) { vector newVec; newVec.swap(original); } ¿Cómo lo haces?

Forma preferida / idiomática para insertar en un mapa

He identificado cuatro formas diferentes de insertar en un std::map : std::map function; function[0] = 42; function.insert(std::map::value_type(0, 42)); function.insert(std::pair(0, 42)); function.insert(std::make_pair(0, 42)); ¿Cuál de esas es la forma preferida / idiomática? (¿Y hay otra manera en la que no he pensado?)

Ventajas de std :: for_each over for loop

¿Hay alguna ventaja de std::for_each over for loop? Para mí, std::for_each solo parece dificultar la legibilidad del código. ¿Por qué entonces algunos estándares de encoding recomiendan su uso?

C ++ incrustado: ¿para usar STL o no?

Siempre he sido un ingeniero de software incrustado, pero generalmente en la Capa 3 o 2 de la stack OSI. No soy realmente un tipo de hardware. En general siempre he hecho productos de telecomunicaciones, generalmente teléfonos de mano / teléfonos celulares, lo que generalmente significa algo así como un procesador ARM 7. Ahora me […]

¿Qué trampas de C ++ debo evitar?

Recuerdo haber aprendido sobre los vectores en el STL y después de un tiempo, quería usar un vector de bools para uno de mis proyectos. Después de ver un comportamiento extraño y hacer una investigación, aprendí que un vector de bools no es realmente un vector de bools . ¿Hay otras trampas comunes que evitar […]

¿Por qué el C ++ STL está tan fuertemente basado en plantillas? (y no en * interfaces *)

Quiero decir, aparte de su nombre obligatorio (la biblioteca de plantillas estándar) … Inicialmente, C ++ tenía la intención de presentar los conceptos de OOP en C. Es decir: se podía decir lo que una entidad específica podía y no podía hacer (independientemente de cómo lo hiciera) en función de su jerarquía de clase y […]