Maison >développement back-end >C++ >Comment puis-je simplifier l'initialisation std::vector en C ?

Comment puis-je simplifier l'initialisation std::vector en C ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-25 13:01:09398parcourir

How Can I Simplify std::vector Initialization in 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn