Articles of stl

Analógico STL en Fortran

Base: tengo un progtwig paralelo Fortran90 / MPI muy grande que representa un modelo físico complejo. Quiero agregarle nuevas funcionalidades: por ejemplo, necesito organizar la cola de mensajes, introducir mergesort en alguna parte y usar tablas hash. Problema: sé cómo escribir tabla hash, crear cola y código mergesort solo, pero no creo que sea una […]

Obteniendo un vector en una función que espera un vector

Considera estas clases. class Base { … }; class Derived : public Base { … }; esta función void BaseFoo( std::vectorvec ) { … } Y finalmente mi vector std::vectorderived; Quiero pasar derived a la función BaseFoo , pero el comstackdor no me deja. ¿Cómo resuelvo esto, sin copiar todo el vector en un std::vector […]

¿Por qué no funciona el almacenamiento de referencias (no punteros) en contenedores en C ++?

En mi progtwig tengo un conjunto de STL. set myStrings; Para mejorar la eficiencia de mi código lo cambié para mantener, solo punteros. (No necesito copias de cadenas reales para ser almacenadas.) set myStrings; He leído que es una buena práctica sustituir punteros con referencias cuando sea posible. (Por supuesto, solo si la funcionalidad real […]

¿Cómo iterar sobre una priority_queue?

¿Puedo atravesar una queue priority_queue estándar o una queue estándar en c ++ con un iterador (como un vector )? No quiero usar pop porque hace que mi cola se elimine. Gracias por cualquier ayuda

¿Por qué push_back en std :: list cambia un iterador inverso inicializado con rbegin?

De acuerdo con cierta documentación de STL que encontré, insertar o eliminar elementos en una lista std :: no invalida iteradores. Esto significa que está permitido recorrer una lista (desde el begin() hasta el end() ), y luego agregar elementos usando push_front. Por ejemplo, en el siguiente código, inicializo una lista con los elementos a, […]

¿Qué está pasando con la sobrecarga de memoria de std :: deque?

Estoy trabajando en un algoritmo de clasificación externo que usa std::queue y debe restringir cuidadosamente su uso de memoria. Me he dado cuenta de que durante la fase de fusión (que usa varias std::queue de longitud fija), el uso de mi memoria aumenta a aproximadamente 2,5 veces lo que esperaba. Dado que std::queue usa de […]

does (w) ifstream admite diferentes codificaciones

Cuando leo un archivo de texto en una cadena de caracteres anchos (std :: wstring) usando un wifstream, ¿la implementación de flujo admite diferentes codificaciones, es decir, puede usarse para leer, por ejemplo, archivos ASCII, UTF-8 y UTF-16? Si no, ¿qué tendría que hacer? (Necesito leer todo el archivo, si eso hace la diferencia)

Eficiencia de la prioridad de STL

Tengo una aplicación (C ++) que creo que estaría bien atendida por una priority_queue STL. La documentación dice: Priority_queue es un adaptador de contenedor, lo que significa que se implementa sobre algún tipo de contenedor subyacente. Por defecto, el tipo subyacente es vector, pero se puede seleccionar un tipo diferente explícitamente. y Las colas de […]

¿Hay una clase de fecha / hora estándar en C ++?

¿C ++ stl tiene una clase de tiempo estándar? O debo convertir a cadena de caracteres antes de escribir en una secuencia. Ejemplo, quiero dar salida a la fecha / hora actual a una secuencia de cadenas: time_t tm (); ostringstream sout; sout << tm << termina; En este caso, obtengo la fecha / hora […]

¿Stl vector concurrente es seguro para subprocesos?

Estoy trabajando en una aplicación donde se espera que una gran cantidad de subprocesos iteren sobre un conjunto de valores de cadena e intenten unir sus propios datos con los datos disponibles en la lista. Estoy buscando el siguiente caso de uso: El vector se inicializa con algunos elementos del tipo std :: string. (Digamos […]