Afficher un message
Vieux 04/03/2008, 11h38   #2
Michael DOUBEZ
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: 2 questions a propos des vecteurs & de leurs initialisations

mderie a écrit :
> Bonjour !
>
> Q1) Je voudrais savoir si on peut demander au compilateur d'inferer le
> type d'un element d'un vecteur :
>
> template<class T>
> class DumpVisitor
> {
> public:
> void operator()(T item)
> {
> cout << "Item = " << item << endl;
> }
> };
>
> vector<int> v;
> ...
> for_each(v.begin(), v.end(), DumpVisitor<int>); // OK
> for_each(v.begin(), v.end(), DumpVisitor<v.?>); // ?
>
> Le but : definir une macro qui ne prend qu'un parametre, le vector !


Le define vector<>::value_type to donne le type des données que
contients le vecteur.

>
> Q2) Est-ce qu'avec le TR1 on peut ecrire plus simplement ceci :
>
> vector<int> v;
> v.push_back(1900);
> v.push_back(1984);
> v.push_back(2000);
> v.push_back(2007);
> v.push_back(2008);
>
> Genre : vector<int> v = { 1900, 1984, 2000, 2007, 2008 };


Non mais tu peux le faire avec boost::array (std::tr1::array<>).

boost::array<int,5> v_init = { { 1900,1984, 2000, 2007,2008 } };
vector<int> v(v_init.begin(),v_init.end());

Sinon, il n'est pas trop du de se faire une fonction make_vector<>() qui
prends un tableau en entrée et retourne le vector<> correspondant puis
tu swap.

Michael
  Réponse avec citation
 
Page generated in 0,06683 seconds with 9 queries