Comment initialiser une chaîne de caractères définie en C++?
J'ai quelques mots à être initialisé alors que la déclaration d'une chaîne de la valeur.
...
using namespace std;
set<string> str;
/*str has to contain some names like "John", "Kelly", "Amanda", "Kim".*/
Je ne veux pas utiliser str.insert("Name");
à chaque fois.
Toute aide serait appréciée.
- Vous pouvez profiter de l'initialiseur de listes si vous êtes à l'aide de C++11. Voir #5 dans ce constructeur de liste et la partie pertinente de Stroustrup C++11 FAQ.
Vous devez vous connecter pour publier un commentaire.
À L'Aide De C++11:
Autrement:
En C++11
Utilisation initialiseur de listes.
En C++03 (je vais voter jusqu' @john réponse. Il est très proche de ce que j'aurais donné.)
Utiliser le
std::set( InputIterator first, InputIterator last, ...)
constructeur.Il ya beaucoup de façons dont vous pouvez faire cela, voici un
si vous n'êtes pas en c++0x:
Vous devriez regarder boost::attribuer
http://www.boost.org/doc/libs/1_39_0/libs/assign/doc/index.html#list_of
Aussi jeter un oeil à:
À l'aide de STL/Boost pour initialiser un codées en dur set<vector<int> >
Il y a plusieurs façons de le faire. À l'aide de C++11, vous pouvez soit essayer...
... qui utilise une liste d'initialiseur, ou
std::begin
etstd::fin
...Créer un tableau de chaînes de caractères(C tableau) et d'initialiser l'ensemble avec ses valeurs (tableau de pointeurs, comme les itérateurs):
std::string values[] = { "John", "Kelly", "Amanda", "Kim" };
std::set s(values,values + sizeof(values)/sizeof(std::string));
la façon la plus simple