Henri de Solages writes:
| > Pourquoi ne pas placer ces itérateurs dans un vector ?
| Je n'aime pas les vector car, quand on fait un erase, les
| iterateurs sur les élements suivants ne sont plus valides.
Oui mais d'après ce que tu as dit jusqu'à présent, tu ne
gardes pas des itérateurs (de vecteurs) vers les itérateurs de
(listes), donc ta crainte n'a aucun fondement dans ce cas
ici. De plus, si tu ne fais pas de erase() sur ton tableau,
pourquoi veux-tu en faire sur un vector ?
Henri de Solages <solages@CICT.fr_> writes:
| > Pourquoi ne pas placer ces itérateurs dans un vector ?
| Je n'aime pas les vector car, quand on fait un erase, les
| iterateurs sur les élements suivants ne sont plus valides.
Oui mais d'après ce que tu as dit jusqu'à présent, tu ne
gardes pas des itérateurs (de vecteurs) vers les itérateurs de
(listes), donc ta crainte n'a aucun fondement dans ce cas
ici. De plus, si tu ne fais pas de erase() sur ton tableau,
pourquoi veux-tu en faire sur un vector ?
Henri de Solages writes:
| > Pourquoi ne pas placer ces itérateurs dans un vector ?
| Je n'aime pas les vector car, quand on fait un erase, les
| iterateurs sur les élements suivants ne sont plus valides.
Oui mais d'après ce que tu as dit jusqu'à présent, tu ne
gardes pas des itérateurs (de vecteurs) vers les itérateurs de
(listes), donc ta crainte n'a aucun fondement dans ce cas
ici. De plus, si tu ne fais pas de erase() sur ton tableau,
pourquoi veux-tu en faire sur un vector ?
Henri de Solages writes:
| >>Je veux un tableau d'itérateurs sur des éléments d'une list.
| > Sinon, ce dont tu as besoin, c'est d'un délimiteur de
| > fin, donc le end() de la liste me semble une bonne
| > valeur interdite.
| Mais si j'ajoute ensuite des éléments à ma liste, le end()
| de la list est-il tenu par la norme de garder une même
| valeur ?
Tu n'as pas à te soucier de end() -- il suffit que tu ne le
stockes nulle part (c'est une proprieté intrinsèque de chaque
liste à chaque instant). Stockes uniquement les itérateurs
vers les éléments que tu as effectivement mis dans la liste,
non des artéfacts comme begin()/end().
Henri de Solages <solages@CICT.fr_> writes:
| >>Je veux un tableau d'itérateurs sur des éléments d'une list.
| > Sinon, ce dont tu as besoin, c'est d'un délimiteur de
| > fin, donc le end() de la liste me semble une bonne
| > valeur interdite.
| Mais si j'ajoute ensuite des éléments à ma liste, le end()
| de la list est-il tenu par la norme de garder une même
| valeur ?
Tu n'as pas à te soucier de end() -- il suffit que tu ne le
stockes nulle part (c'est une proprieté intrinsèque de chaque
liste à chaque instant). Stockes uniquement les itérateurs
vers les éléments que tu as effectivement mis dans la liste,
non des artéfacts comme begin()/end().
Henri de Solages writes:
| >>Je veux un tableau d'itérateurs sur des éléments d'une list.
| > Sinon, ce dont tu as besoin, c'est d'un délimiteur de
| > fin, donc le end() de la liste me semble une bonne
| > valeur interdite.
| Mais si j'ajoute ensuite des éléments à ma liste, le end()
| de la list est-il tenu par la norme de garder une même
| valeur ?
Tu n'as pas à te soucier de end() -- il suffit que tu ne le
stockes nulle part (c'est une proprieté intrinsèque de chaque
liste à chaque instant). Stockes uniquement les itérateurs
vers les éléments que tu as effectivement mis dans la liste,
non des artéfacts comme begin()/end().
Je veux un tableau d'itérateurs sur des éléments d'une list.
Sinon, ce dont tu as besoin, c'est d'un délimiteur de fin,
donc le end() de la liste me semble une bonne valeur
interdite.
Mais si j'ajoute ensuite des éléments à ma liste, le end() de
la list est-il tenu par la norme de garder une même valeur ?
Je veux un tableau d'itérateurs sur des éléments d'une list.
Sinon, ce dont tu as besoin, c'est d'un délimiteur de fin,
donc le end() de la liste me semble une bonne valeur
interdite.
Mais si j'ajoute ensuite des éléments à ma liste, le end() de
la list est-il tenu par la norme de garder une même valeur ?
Je veux un tableau d'itérateurs sur des éléments d'une list.
Sinon, ce dont tu as besoin, c'est d'un délimiteur de fin,
donc le end() de la liste me semble une bonne valeur
interdite.
Mais si j'ajoute ensuite des éléments à ma liste, le end() de
la list est-il tenu par la norme de garder une même valeur ?
En général, c'est vrai, j'évite de maintenir des itérateurs au
delà de l'algorithme qui s'en sert. Je crois que je n'ai jamais
fait une collection d'itérateurs. Mais il faut analyser chaque
En général, c'est vrai, j'évite de maintenir des itérateurs au
delà de l'algorithme qui s'en sert. Je crois que je n'ai jamais
fait une collection d'itérateurs. Mais il faut analyser chaque
En général, c'est vrai, j'évite de maintenir des itérateurs au
delà de l'algorithme qui s'en sert. Je crois que je n'ai jamais
fait une collection d'itérateurs. Mais il faut analyser chaque
Depuis quand est-ce qu'il y a un pointeur NULL dans une
liste chaînée en C.
A l'école ?
Depuis quand est-ce qu'il y a un pointeur NULL dans une
liste chaînée en C.
A l'école ?
Depuis quand est-ce qu'il y a un pointeur NULL dans une
liste chaînée en C.
A l'école ?
Peut-être c'est parce que quand j'ai abordé les listes chaînées
pour la première fois, on avait déjà assez de mémoire pour ne
pas être obligé à s'emmerder avec des listes à chaînage simple,
or que les auteurs des livres ont commencé avec des listes à
chaînage simple (où je ne vois guère d'autre solution qu'une
valeur sentinelle comme NULL), et ont simplement continué pareil
avec des listes à chaînage double, même si une solution plus
simple existe.
Peut-être c'est parce que quand j'ai abordé les listes chaînées
pour la première fois, on avait déjà assez de mémoire pour ne
pas être obligé à s'emmerder avec des listes à chaînage simple,
or que les auteurs des livres ont commencé avec des listes à
chaînage simple (où je ne vois guère d'autre solution qu'une
valeur sentinelle comme NULL), et ont simplement continué pareil
avec des listes à chaînage double, même si une solution plus
simple existe.
Peut-être c'est parce que quand j'ai abordé les listes chaînées
pour la première fois, on avait déjà assez de mémoire pour ne
pas être obligé à s'emmerder avec des listes à chaînage simple,
or que les auteurs des livres ont commencé avec des listes à
chaînage simple (où je ne vois guère d'autre solution qu'une
valeur sentinelle comme NULL), et ont simplement continué pareil
avec des listes à chaînage double, même si une solution plus
simple existe.
Marc Boyer writes:
| > Je crois. Je crois qu'il font à peu près comme j'ai fait
| > ci-dessus. J'ai l'impression que la seule différence entre leur
| > code et ce que je faisais auparavent (depuis au moins vingt ans
| > maintenant), c'est qu'ils allouent la racine dynamiquement,
|
| Oui.
Non, il n'y a pas d'allocation dynamique de la racine.
Marc Boyer <Marc.Boyer@enseeiht.yahoo.fr.invalid> writes:
| > Je crois. Je crois qu'il font à peu près comme j'ai fait
| > ci-dessus. J'ai l'impression que la seule différence entre leur
| > code et ce que je faisais auparavent (depuis au moins vingt ans
| > maintenant), c'est qu'ils allouent la racine dynamiquement,
|
| Oui.
Non, il n'y a pas d'allocation dynamique de la racine.
Marc Boyer writes:
| > Je crois. Je crois qu'il font à peu près comme j'ai fait
| > ci-dessus. J'ai l'impression que la seule différence entre leur
| > code et ce que je faisais auparavent (depuis au moins vingt ans
| > maintenant), c'est qu'ils allouent la racine dynamiquement,
|
| Oui.
Non, il n'y a pas d'allocation dynamique de la racine.