Si vous Si les données initiales sont déjà présentes, disons dans un tableau de style C, n'oubliez pas que ces conteneurs STL ont des "constructeurs 2-itérateurs".
const char raw_data[100] = { ... };
std::vector<char> v(raw_data, raw_data + 100);
Modifier: On m'a demandé de montrer un exemple pour une carte. Ce n'est pas souvent que vous avez un tableau de paires, mais dans le passé, j'ai créé un script Python qui a généré le tableau de paires à partir d'un fichier de données brutes. Je #inclure alors cette structure code généré et initalized une carte avec comme ceci:
#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);
Alternativement, si vous avez un tableau de clés, et et tableau de valeurs de données, vous pouvez passer en boucle les appelant carte. insert (make_pair (clé, valeur));
Vous posez aussi des questions sur memset et vector. Je ne pense pas qu'il y ait un vrai mérite d'utiliser memset pour initialiser un vecteur, car les vecteurs peuvent donner une valeur initiale pour tous leurs éléments par le constructeur:
vector<int> v2(100, 42); // 100 ints all with the value of 42
vector<string> v(42, "initial value"); // 42 copies of "initial value"
maintenant, qu'en est-il de la carte? –
Ajout d'un exemple pour la carte. –