OVH Cloud OVH Cloud

Classe template C++ indices negatifs

12 réponses
Avatar
LKH
Bonjour,

Je dois créer un classe qui autorisent les indices négatifs pour les
vecteurs du style x[-3]= valeur.
De plus je dois etre en mesure de créer des éléments multidim également.

Auriez vous une idée je ne vois pas trop comment faire...

Merci beaucoup.

LKH

10 réponses

1 2
Avatar
Fabien LE LEZ
On Sat, 4 Dec 2004 14:37:08 +0100, "LKH" :

Je dois créer un classe qui autorisent les indices négatifs pour les
vecteurs du style x[-3]= valeur.


Si tu veux le même type d'interface qu'avec vector<>, tu peux faire ça
à partir d'un std::deque<> : l'ajout d'un élément en positif
s'implémente par push_back, l'ajout d'un élément en négatif
s'implémente par push_front, et tu gardes le compte des éléments
négatifs pour faire un décalage :

T& at (int n)
{
return data.at (n + nb_elements_negatifs);
}

Tu as aussi la solution de te baser sur std::map<>, voire d'utiliser
un std::map<> brut de fonderie.

De plus je dois etre en mesure de créer des éléments multidim également.


Dimension connue à la compilation : il suffit d'imbriquer les
templates, du style :

vector <vector <double> >

Sinon, cherche dans Google News : le problème a été posé ici même il y
a peu de temps.


--
;-)

Avatar
Fabien LE LEZ
On Sat, 04 Dec 2004 16:26:08 +0100, Fabien LE LEZ
:

Sinon, cherche dans Google News : le problème a été posé ici même il y
a peu de temps.


J'ai même le message-id : <4187f182$0$14973$

--
;-)

Avatar
LKH
Salut,

Euh la où j'ai pas assuré c'est que je suis un débutant...et que je n'ai pas
tout compris...

Merci

LKH
Avatar
Fabien LE LEZ
On Sat, 4 Dec 2004 16:35:51 +0100, "LKH" :

Euh la où j'ai pas assuré c'est que je suis un débutant...


Et ?
std::vector<> devrait t'être familier si tu as plus de quelques
minutes de C++ derrière toi.
deque et map ne sont pas spécialement plus difficiles à utiliser.
Pour le reste, y'a pas de secret : faut beaucoup lire et beaucoup
essayer.


--
;-)

Avatar
LKH
oui std::vector<> je m en souviens...mais les autres je ne connaissais
pas...
bon bah je vais bouquiner :)

Merci quand même car j ai au moins une piste vers laquelle je peux me
diriger.

LKH
Avatar
Loïc Joly
LKH wrote:
Bonjour,

Je dois créer un classe qui autorisent les indices négatifs pour les
vecteurs du style x[-3]= valeur.
De plus je dois etre en mesure de créer des éléments multidim également.

Auriez vous une idée je ne vois pas trop comment faire...


Avant d'en dire plus, j'aimerais savoir pour quelle raison tu veux faire
ça, et quelle sémentique donner à x[-3] ? (en effet, j'ai déjà vu des
langages où ça signifiait le troisième élément avant l'élément 0, et
d'autres où c'était une astuce pour dire le troisième élément en partant
de la fin et en comptant à l'envers.

--
Loïc

Avatar
LKH
Bonjour,

Je dois avouer que moi je ne vois pas l'utilité...mais vous savez des fois
les projets donnés en cours ne sont pas toujours très intéressant...
je dois le faire c'est tout...
D'ailleurs ça marche plus ou moins...
Mais j ai un pb. Qd je déclare en double j'ai un plantage du .exe qd je veux
la fermer (j'utilise dev c++) par contre en float tout marche correctement.
Savez vous pkoi?

Merci

LKH
Avant d'en dire plus, j'aimerais savoir pour quelle raison tu veux faire
ça, et quelle sémentique donner à x[-3] ? (en effet, j'ai déjà vu des
langages où ça signifiait le troisième élément avant l'élément 0, et
d'autres où c'était une astuce pour dire le troisième élément en partant
de la fin et en comptant à l'envers.

--
Loïc


Avatar
drkm
"LKH" writes:

Je dois avouer que moi je ne vois pas l'utilité...mais vous savez des fois
les projets donnés en cours ne sont pas toujours très intéressant...
je dois le faire c'est tout...


Ça c'est sûr. Mais l'énoncé doit quand même préciser si l'indice -i
équivaut à l'indice 0 - i ou à l'indice <end> - i.

--drkm

Avatar
drkm
"LKH" writes:

Mais j ai un pb. Qd je déclare en double j'ai un plantage du .exe qd je veux
la fermer (j'utilise dev c++) par contre en float tout marche correctement.
Savez vous pkoi?


Comme ça, non. Poste le bout de code incriminé. Si tu ne nous
racontes pas ton problème, on aura du mal à t'aider.

--drkm

Avatar
Loïc Joly wrote:
LKH wrote:

Bonjour,

Je dois créer un classe qui autorisent les indices négatifs pour les
vecteurs du style x[-3]= valeur.
De plus je dois etre en mesure de créer des éléments multidim également.

Auriez vous une idée je ne vois pas trop comment faire...



Avant d'en dire plus, j'aimerais savoir pour quelle raison tu veux faire
ça, et quelle sémentique donner à x[-3] ? (en effet, j'ai déjà vu des
langages où ça signifiait le troisième élément avant l'élément 0, et
d'autres où c'était une astuce pour dire le troisième élément en partant
de la fin et en comptant à l'envers.




--
James Kanze home: www.gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 pl. Pierre Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34


1 2