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
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
He leído que convertir un puntero de función en un puntero de datos y viceversa funciona en la mayoría de las plataformas, pero no se garantiza que funcione. ¿Por qué es este el caso? ¿No deberían ser ambas direcciones simplemente en la memoria principal y, por lo tanto, ser...
¿ std::make_uniqueTiene algún beneficio de eficiencia como std::make_shared? En comparación con la construcción manual std::unique_ptr: std::make_unique<int>(1); // vs std::unique_ptr<int>(new
Un libro de C ++ que he estado leyendo dice que cuando se elimina un puntero usando el deleteoperador, la memoria en la ubicación a la que apunta se "libera" y se puede sobrescribir. También establece que el puntero continuará apuntando a la misma ubicación hasta que sea reasignado o configurado...
Vi este ejemplo en la documentación de cppreference parastd::numeric_limits #include <limits> #include <iostream> int main() { std::cout << "type\tlowest()\tmin()\t\tmax()\n\n"; std::cout << "uchar\t" << +std::numeric_limits<unsigned char>::lowest()...
En pocas palabras: Tengo una clase que consta principalmente de miembros públicos estáticos, por lo que puedo agrupar funciones similares que aún deben llamarse desde otras clases / funciones. De todos modos, he definido dos variables char sin signo estáticas en el ámbito público de mi clase,...
Esa es básicamente la pregunta, ¿hay una forma "correcta" de implementar operator<<? Al leer esto , puedo ver que algo así como: friend bool operator<<(obj const& lhs, obj const& rhs); se prefiere a algo como ostream& operator<<(obj const& rhs); Pero no puedo...
Sé que el compilador a veces inicializará la memoria con ciertos patrones como 0xCDy 0xDD. Lo que quiero saber es cuándo y por qué sucede esto. Cuando ¿Es esto específico para el compilador utilizado? ¿Hacer malloc/newy free/deletetrabajar de la misma manera con respecto a esto? ¿Es específico...
Como programador novato de C ++, hay algunas construcciones que todavía me parecen muy oscuras, una de ellas es const. Puede usarlo en tantos lugares y con tantos efectos diferentes que es casi imposible que un principiante salga vivo. ¿Algún gurú de C ++ explicará una vez para siempre los diversos...
De acuerdo, el salto de información enumera los puntos de corte, pero no en un formato que funcione bien al reutilizarlos utilizando el comando --como en esta pregunta . ¿GDB tiene un método para volcarlos en un archivo aceptable para la entrada nuevamente? A veces, en una sesión de depuración, es...
¿Qué es mejor, listas de adyacencia o matriz de adyacencia, para problemas de gráficos en C ++? ¿Cuales son las ventajas y desventajas de cada
Tengo una clase class foo { public: foo(); foo( int ); private: static const string s; }; ¿Dónde está el mejor lugar para inicializar la cadena sen el archivo
¿Hay alguna manera de agregar o editar el mensaje lanzado por afirmar? Me gustaría usar algo como assert(a == b, "A must be equal to B"); Luego, el compilador agrega línea , tiempo , etc. ¿Es
HASTA DONDE SE: C ++ proporciona tres tipos diferentes de polimorfismo. Funciones virtuales Nombre de función sobrecarga Sobrecarga del operador Además de los tres tipos anteriores de polimorfismo, existen otros tipos de polimorfismo: tiempo de ejecución tiempo de compilación polimorfismo...
Encontré algo de código usando std :: shared_ptr para realizar una limpieza arbitraria al apagar. Al principio pensé que este código no podría funcionar, pero luego intenté lo siguiente: #include <memory> #include <iostream> #include <vector> class test { public: test() {...
El siguiente código entra en un bucle infinito en GCC: #include <iostream> using namespace std; int main(){ int i = 0x10000000; int c = 0; do{ c++; i += i; cout << i << endl; }while (i > 0); cout << c << endl; return 0; } Así que aquí está el trato: el...
Entiendo más la sobrecarga de operadores, con la excepción de los operadores de acceso miembro ->, .*, ->*etc. En particular, ¿qué se pasa a estas funciones de operador y qué se debe devolver? ¿Cómo sabe la función del operador (por ejemplo operator->(...)) a qué miembro se hace...
Tenía la impresión de que acceder a un unionmiembro que no sea el último conjunto es UB, pero parece que no puedo encontrar una referencia sólida (aparte de las respuestas que afirman que es UB pero sin ningún apoyo del estándar). Entonces, ¿es un comportamiento
De acuerdo con C ++ '03 Standard 2.3 / 1: Antes de que tenga lugar cualquier otro procesamiento, cada aparición de una de las siguientes secuencias de tres caracteres ("secuencias trigráficas") se reemplaza por el carácter único indicado en la Tabla 1.
¿Cuál es la diferencia entre std::runtime_errory std::exception? ¿Cuál es el uso apropiado para cada uno? ¿Por qué son diferentes en primer