Si Ya tiene los datos iniciales por los alrededores, por ejemplo, en una matriz de estilo C, no olvide que estos contenedores STL tienen "constructores de 2 iteradores".
const char raw_data[100] = { ... };
std::vector<char> v(raw_data, raw_data + 100);
Editar: Me pidieron que muestran un ejemplo de un mapa. No es frecuente que tenga una matriz de pares por ahí, pero en el pasado he creado una secuencia de comandos de Python que generó la matriz de pares de un archivo de datos sin formato. entonces #include esta estructura generada por código y initalized un mapa con él de esta manera:
#include <map>
#include <string>
#include <utility>
using namespace std;
typedef map<string, int> MyMap;
// this array may have been generated from a script, for example:
const MyMap::value_type raw_data[2] = {
MyMap::value_type("hello", 42),
MyMap::value_type("world", 88),
};
MyMap my_map(raw_data, raw_data + 2);
Alternativamente, si usted tiene una serie de teclas y y la matriz de valores de datos, puede recorrer más de ellos, llamando mapa. insert (make_pair (clave, valor));
También preguntas sobre memset y vector. Creo que no hay ningún mérito real de utilizar memset para inicializar un vector, vectores, porque se puede dar un valor inicial para todos sus elementos a través del constructor:
vector<int> v2(100, 42); // 100 ints all with the value of 42
vector<string> v(42, "initial value"); // 42 copies of "initial value"
ahora, ¿qué tal el mapa? –
Agregó un ejemplo para el mapa. –