Y-a-t-il un modèle dans la STL implémentant les tableaux multidimensionnels,
l'équivalent de vector<> pour les tableaux unidimensionnels ?
Nota : je cherche un modèle pour les tableaux de taille quelconque et
variable et pas seulement bi-dimensionnels, ce qui serait facile à
programmer...Par exemple un modèle où dans le constructeur on passerait un
vector<int> spécifiant les dimensions du tableau. J'ai essayé de m'y mettre
et ça coule pas de source...
Marc
En fait, la méthode canonique pour passer un objet (i.e. autre chose qu'un type de base) en argument d'une fonction est le passage par référence constante. Donc il faut que ça marche, même dans le cas où il y a une valeur par défaut.
Je suis d'accord avec toi, mais on aurait pu penser qu'il faille (aïe) écrire
void f(const T&); T x; f(x);
au lieu de f(T()) directement. J'ai lu dans le stroustrup que dans ce dernier cas un temporaire est créé qui a la même "durée de vie" que la portée de la référence qui le pointe (on se comprend), donc tout le corps de la fonction dans le cas présent. On peut même écrire const int &x=1; x est alors une réfence vers un temporaire non nommé qui contient 1 est est détruit quand on quitte la portée de x. Marc
En fait, la méthode canonique pour passer un objet (i.e. autre chose
qu'un type de base) en argument d'une fonction est le passage par
référence constante. Donc il faut que ça marche, même dans le cas où
il y a une valeur par défaut.
Je suis d'accord avec toi, mais on aurait pu penser qu'il faille (aïe)
écrire
void f(const T&);
T x;
f(x);
au lieu de f(T()) directement.
J'ai lu dans le stroustrup que dans ce dernier cas un temporaire est créé
qui a la même "durée de vie" que la portée de la référence qui le pointe (on
se comprend), donc tout le corps de la fonction dans le cas présent.
On peut même écrire
const int &x=1;
x est alors une réfence vers un temporaire non nommé qui contient 1 est est
détruit quand on quitte la portée de x.
Marc
En fait, la méthode canonique pour passer un objet (i.e. autre chose qu'un type de base) en argument d'une fonction est le passage par référence constante. Donc il faut que ça marche, même dans le cas où il y a une valeur par défaut.
Je suis d'accord avec toi, mais on aurait pu penser qu'il faille (aïe) écrire
void f(const T&); T x; f(x);
au lieu de f(T()) directement. J'ai lu dans le stroustrup que dans ce dernier cas un temporaire est créé qui a la même "durée de vie" que la portée de la référence qui le pointe (on se comprend), donc tout le corps de la fonction dans le cas présent. On peut même écrire const int &x=1; x est alors une réfence vers un temporaire non nommé qui contient 1 est est détruit quand on quitte la portée de x. Marc