Maison >développement back-end >C++ >Comment puis-je simplifier l'initialisation std::vector en C ?
Simplification de l'initialisation std::vector
Lorsque vous travaillez avec des tableaux en C, l'initialisation est souvent simple :
int a[] = {10, 20, 30};
Cependant, l'initialisation d'un std::vector peut être plus fastidieuse en utilisant push_back() méthode :
std::vector<int> ints; ints.push_back(10); ints.push_back(20); ints.push_back(30);
Solution C 11 (avec support)
Si votre compilateur prend en charge C 11, vous pouvez utiliser des listes d'initialisation :
std::vector<int> v = {1, 2, 3, 4};
Ceci est disponible dans les versions 4.4 et supérieures de GCC.
Option alternative (avec Boost.Assign)
Pour les compilateurs plus anciens, la bibliothèque Boost.Assign propose une solution non macro :
#include <boost/assign/list_of.hpp> ... std::vector<int> v = boost::assign::list_of(1)(2)(3)(4);
Ou, en utilisant les opérateurs de Boost.Assign :
#include <boost/assign/std/vector.hpp> using namespace boost::assign; ... std::vector<int> v; v += 1, 2, 3, 4;
Gardez à l'esprit que Boost.Assign peut avoir une surcharge de performances par rapport à l'initialisation manuelle.
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!