Puis-je initialiser un vecteur STL avec 10 du même entier dans une liste d'initialisation? Mes tentatives jusqu'à présent m'ont échoué.
Je pense que vous voulez dire ceci:
struct test {
std::vector<int> v;
test(int value) : v( 100, value ) {}
};
Utilisez le constructeur approprié, qui prend une taille et une valeur par défaut.
int number_of_elements = 10;
int default_value = 1;
std::vector<int> vec(number_of_elements, default_value);
Si vous utilisez C++ 11 et sur GCC, vous pouvez le faire:
vector<int> myVec () {[0 ... 99] = 1};
C'est ce qu'on appelle l'initialisation à distance et est une extension GCC uniquement.
La liste d'initialisation pour le vecteur est prise en charge à partir de C++ 0x. Si vous avez compilé avec C++ 98
int number_of_elements = 10;
int default_value = 1;
std::vector<int> vec(number_of_elements, default_value);
Vous pouvez le faire avec std::vector
constructeur:
vector(size_type count,
const T& value,
const Allocator& alloc = Allocator());
Ce qui prend count
et value
à répéter.
Si vous souhaitez utiliser des listes d'initialisation, vous pouvez écrire:
const int x = 5;
std::vector<int> vec {x, x, x, x, x, x, x, x, x, x};
pouvez-vous poster ce que vous faites
int i = 100;
vector<int> vInts2 (10, i);
vector<int>::iterator iter;
for(iter = vInts2.begin(); iter != vInts2.end(); ++iter)
{
cout << " i " << (*iter) << endl;
}