Je jouais un peu avec des fonctions avec des arguments variables, et j'ai décidé de créer une fonction pour créer des vecteurs avec les arguments. Ma fonction pour créer un vecteur int
travaillé ...Utiliser une fonction avec des chaînes d'argument variables
vector<int> makeIntVector(int numArgs, ...) {
va_list listPointer;
va_start(listPointer, numArgs);
vector<int> made;
for(int a = 0; a < numArgs; a++)
made.push_back(va_arg(listPointer, int));
va_end(listPointer);
return made;
}
mais pas ma fonction pour créer un vecteur string
:
vector<string> makeStringVector(int numArgs, string something, ...) {
va_list listPointer;
va_start(listPointer, something);
vector<string> made;
for(int a = 0; a < numArgs; a++)
made.push_back(va_arg(listPointer, string));
va_end(listPointer);
return made;
}
qui bloque le programme. Qu'est-ce que je fais mal?
'Pourquoi ne pas simplement créer un vecteur et y repousser vos chaînes? Parce que cela devient vraiment fastidieux: P – wrongusername
C++ 11 semble y remédier avec ses listes d'initialisation. Hourra! –