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