OVH Cloud OVH Cloud

Trier un vecteur d'iterateur à l'envers

12 réponses
Avatar
Michaël Delva
Salut à tous,

continuant sur mes tâtonnements concernant les algos de la STL (c'est pas
faute de chercher et de m'user les yeux sur Le Language C++ par
Stroustrup), je n'arrive pas trier un vecteur d'iterateurs en ordre
inverse, donc de end() à begin()...

Comment vous faites ça?

Merci d'avance!!

2 réponses

1 2
Avatar
kanze
"Michaël Delva" wrote in message
news:...
Samuel Krempp wrote in
news:40471da7$0$2441$:


[...]
Et à la base, aller de end() à begin() se fait sans mettre des
itérateurs dans un vecteur, donc c'est simplement ça qu'il aurait
fallu demander : ce que tu voulais vraiment faire au final. C'est
pas pour être désagréable que je dis ça, c'est pas ta faute si tu as
pensé que mettre dans un vecteur et trier était la solution à ton
problème. Mais je voulais juste te faire remarquer que tu obtiendras
plus de réponses en formulant tes questions en fonction de ton but
plus que de ce que tu penses être la solution. Et tu mettras moins
de lecteurs sur des fausses pistes.


OK, j'essaierai de mieux formuler ma question les prochaines fois. En
espérant ne pas être limité, comme c'est souvent le cas, par le
vocabulaire spécifique au C++, ce qui, je te l'accorde volontiers, n'a
pas été le cas cette fois ;-)


Sauf que dans ce cas-ci, il ne s'agit pas d'un vocabulaire propre à C++,
mais d'un vocabulaire général de l'algorithmique. D'après tes
commentaires dans un autre fil de discussion (que tu ne savais pas ce
que c'est qu'un tableau de hachage), j'ai l'impression que tu as dû
passer à côté de l'algorithmique dans ta formation. Si tu as un diplôme
en informatique, je dirais qu'il faudrait sérieusement poser des
questions sur la qualité de l'école. Sinon, je peux te dire par
expérience (je suis autodidacte moi-même, sans bac et sans jamais avoir
suivi un cours d'informatique), c'est facile de passer à côté, parce que
précisement, il ne se rapporte pas directement à des outils dont on se
sert.

Dans mon cas, j'ai trouvé le livre « Algorithms + Data Structure Program », de Wirth (ISBN 0-13-022418-9) extrèmement clair et facile à
comprendre, malgré quelque faiblesses, surtout au niveau de la
typographie. On conseille aussi souvent « Algorithms in C », de
Sedgewick ; je l'ai trouvé moins facile à aborder, mais c'est une
question de goût. (J'ai aussi un livre d'un certain Aaron Tanenbaum que
j'ai trouvé très bien. Malheureusement, je n'arrive pas à en trouver les
référence chez Amazon, ce qui me fait penser qu'il n'est peut-être plus
disponible.) La référence dans le domaine, c'est sans doute le Knuth
(«@The Art of Computer Programming »), mais c'est ça, une référence.
AMHA, ce n'est pas un livre pour commencer avec le sujet.

--
James Kanze GABI Software mailto:
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16


Avatar
Gabriel Dos Reis
"Michaël Delva" writes:

| Samuel Krempp wrote in
| news:4045c6bb$0$29938$:
|
| > le Wednesday 03 March 2004 02:53, écrivit :
| >>
| >> Parfait avec les reverse_iterator...
| >>
| >> Je les avais oublié ceux-là...
| >>
| >> Merci beaucoup!!
| >
| > et ben, tu aurais dû mieux rédiger ta question départ car ce n'est pas
| > du tout ce qu'on pouvait penser que tu voulais, il n'y a aucun rapport
| > avec un *tri* d'itérateurs.
| >
|
| Ben trier à "l'envers", c'est bien aller de end() à begin(), non? Ce que
| font les reverse_iterator?

J'aurais cru à une douce méchante blague si c'était quelqu'un
d'autre qui avait écrit ça...

Non, reverse_iterator ne trie pas un les itérateurs. Il se content
just de contrarier les iérateurs : quand l'un dit ++, l'autre dit --.
Un reverse_iterator va dans le sens inverse de l'itérateur à partir
duquel il est construit.

-- Gaby
1 2