Je souhaite travailler sur des tableaux en 2D dont la taille n'est pas
connue a priori (concrètement, des matrices).
J'ai commencé à utiliser le type double** mais j'ai l'impression d'avoir
des soucis d'allocation de mémoire. J'ai trouvé ce fil intéressant :
http://milien.com/?prohNhZ86n
qui dit que le risque d'un soucis d'allocation mémoire est présent, et
qui donne 2 solutions : utiliser un tableau à une dimension (double*),
et utiliser le type std::valarray.
Le petit soucis est que ce fil date de 4 ans, donc y'a-t-il des
arguments nouveaux depuis en faveur de l'une ou l'autre méthode? Une
meilleure solution existe-t-elle maintenant?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fabien LE LEZ
On 14 Aug 2006 10:29:12 GMT, Benoit Noyelles :
Je souhaite travailler sur des tableaux en 2D dont la taille n'est pas connue a priori (concrètement, des matrices).
J'ai commencé à utiliser le type double** mais j'ai l'impression d'avoir des soucis d'allocation de mémoire.
Tu parles...
http://milien.com/?prohNhZ86n
AMHA le lien n'est pas bon, il renvoie vers un truc bizarre.
qui dit que le risque d'un soucis d'allocation mémoire est présent, et qui donne 2 solutions : utiliser un tableau à une dimension (double*), et utiliser le type std::valarray.
Uh ? std::valarray est peut-être adapté ; j'avoue ne l'avoir jamais utilisé.
Typiquement, pour une matrice, j'utiliserais une encapsulation de std::vector <std::vector <T> >.
(Ou bien un truc à base de map<pair<int,int>,T> s'il s'agit d'une matrice très grande et presque vide.)
Le petit soucis est que ce fil date de 4 ans
Le langage n'a guère changé entre-temps.
On 14 Aug 2006 10:29:12 GMT, Benoit Noyelles <benoit@fr>:
Je souhaite travailler sur des tableaux en 2D dont la taille n'est pas
connue a priori (concrètement, des matrices).
J'ai commencé à utiliser le type double** mais j'ai l'impression d'avoir
des soucis d'allocation de mémoire.
Tu parles...
http://milien.com/?prohNhZ86n
AMHA le lien n'est pas bon, il renvoie vers un truc bizarre.
qui dit que le risque d'un soucis d'allocation mémoire est présent, et
qui donne 2 solutions : utiliser un tableau à une dimension (double*),
et utiliser le type std::valarray.
Uh ?
std::valarray est peut-être adapté ; j'avoue ne l'avoir jamais
utilisé.
Typiquement, pour une matrice, j'utiliserais une encapsulation de
std::vector <std::vector <T> >.
(Ou bien un truc à base de map<pair<int,int>,T> s'il s'agit d'une
matrice très grande et presque vide.)
Je souhaite travailler sur des tableaux en 2D dont la taille n'est pas connue a priori (concrètement, des matrices).
J'ai commencé à utiliser le type double** mais j'ai l'impression d'avoir des soucis d'allocation de mémoire.
Tu parles...
http://milien.com/?prohNhZ86n
AMHA le lien n'est pas bon, il renvoie vers un truc bizarre.
qui dit que le risque d'un soucis d'allocation mémoire est présent, et qui donne 2 solutions : utiliser un tableau à une dimension (double*), et utiliser le type std::valarray.
Uh ? std::valarray est peut-être adapté ; j'avoue ne l'avoir jamais utilisé.
Typiquement, pour une matrice, j'utiliserais une encapsulation de std::vector <std::vector <T> >.
(Ou bien un truc à base de map<pair<int,int>,T> s'il s'agit d'une matrice très grande et presque vide.)
Le petit soucis est que ce fil date de 4 ans
Le langage n'a guère changé entre-temps.
kanze
Fabien LE LEZ wrote:
Typiquement, pour une matrice, j'utiliserais une encapsulation de std::vector <std::vector <T> >.
Et non std::vector< T >, avec linéarisation des indices dans l'encapsulation ?
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Fabien LE LEZ wrote:
Typiquement, pour une matrice, j'utiliserais une encapsulation
de std::vector <std::vector <T> >.
Et non std::vector< T >, avec linéarisation des indices dans
l'encapsulation ?
--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34