Initialisation élégante de std::vector avec des éléments codés en dur
Bien qu'il soit simple d'initialiser un tableau en C, par exemple, int a[] = {10, 20, 30}, l'initialisation d'un std::vector de la même manière peut sembler encombrant. Voici deux façons élégantes d'obtenir le même résultat :
Liste d'initialisation C 11
Dans C 11 et versions ultérieures, vous pouvez utiliser des listes d'initialisation pour initialiser un std : vector directement :
std::vector<int> v = {1, 2, 3, 4};
Cette syntaxe est supportée par GCC à partir de la version 4.4. Cependant, VC 2010 ne prend pas encore en charge cette fonctionnalité.
Bibliothèque Boost.Assign
Alternativement, la bibliothèque Boost.Assign fournit un moyen pratique d'initialiser un std :: vecteur :
#include <boost/assign/list_of.hpp> ... std::vector<int> v = boost::assign::list_of(1)(2)(3)(4);
Ou :
#include <boost/assign/std/vector.hpp> using namespace boost::assign; ... std::vector<int> v; v += 1, 2, 3, 4;
Notez que cette dernière syntaxe implique une légère surcharge due à l'utilisation interne d'un std::deque. Par conséquent, pour le code critique en termes de performances, envisagez d'utiliser directement la liste d'initialisation std::vector, comme suggéré par Yacoby dans la question d'origine.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!