Afficher un message
Vieux 04/03/2008, 14h19   #4
Michel Decima
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: 2 questions a propos des vecteurs & de leurs initialisations

mderie a écrit :
> On Mar 4, 12:38 pm, Michael DOUBEZ <michael.dou...@free.fr> wrote:


>>> 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 } };

>
> Non merci : Je dois encore compter moi-meme le nombre d'element du
> tableau(ici 5)...


Sans le TR1, ni Boost, juste avec 2 fonctions triviales (cf plus bas),
il n'y a pas besoin de compter les elements:

int v_init[] = { 1900, 1984, 2000, 2007, 2008 };
vector< int > v( begin(v_init), end(v_init) ) ;

Les deux fonctions begin et end :

template< typename T, size_t N >
inline T* begin( T (&array)[ N ] )
{ return array ; }

template< typename T, size_t N >
inline T* end( T (&array)[ N ] )
{ return array + N ; }


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