skn a écrit :
moi j'arrive pas à comprendre où il est le problème !
|
Le problème, c'est que tu n'a pas été lire la doc de std::vector et voir quel constructeurs sont possibles. Si tu lis cette doc ici ou la, tu constateras qu'aucun constructeur n'admet ce que tu veux passer comme paramètre.
Terminapor a écrit :
Regarde du côté de std::initializer_list (possible que ça soit C++11 only) pour l'initialisation avec les brackets.
|
En utilisant l'aggregate initialization de C++11 on peut faire:
std::vector<char> caracter {{'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','y','z'}};
(ça doit revenir a faire std::vector<char> caracter(std::initializer_list<char>({'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','y','z'})); mais avec une écriture un peu moins lourde).
Un petit exemple pour tester:
Code :
- #include <iostream>
- #include <vector>
- template<typename T>
- std::ostream& operator<<(std::ostream& s, const std::vector<T>& v) {
- s.put('[');
- char comma[3] = {'\0', ' ', '\0'};
- for (const auto& e : v) {
- s << comma << e;
- comma[0] = ',';
- }
- return s << ']';
- }
- int main()
- {
- std::vector<char> caracter {{'a','b','c','d'}};
- std::cout << "caracter: " << caracter << '\n';
- return 0;
- }
|
C:\clang>g++ -std=c++11 -o vectest.exe vectest.cpp
C:\clang>vectest
caracter: [a, b, c, d] |
Mais bon, ça n'a aucun intérêt d'utiliser std::vector ici: pour qque chose comme l'alphabet, qui est de taille invariable, il y a std::array.
std::array<char, 26> caracter {{'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','y','z'}};
A+,
Message édité par gilou le 17-11-2013 à 00:33:38
---------------
There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! --