Est-il légal d'assigner la valeur NULL à un itérateur ?
Souvent, l'équivalent moral de NULL pour un itérateur sur une collection "c" est c.end()
-- Loïc
Henri de Solages
Henri de Solages writes: | Est-il légal d'assigner la valeur NULL à un itérateur ?
NULL est censé désigner une constante de pointeur nul et un itérateur n'est pas un pointeur.
Quel problème voudrais-tu résoudre ?
Je veux un tableau d'itérateurs sur des éléments d'une list. Pour parcourir mes tableaux de pointeurs facilement, je les termine par un pointeur NULL. Y a-t-il un équivalent pour les itérateurs ? Je remarque cependant que ni c++ ni icpc (compilateur d'Intel) ne me jettent quand j'affecte NULL à un itérateur.
Henri de Solages <solages@CICT.fr_> writes:
| Est-il légal d'assigner la valeur NULL à un itérateur ?
NULL est censé désigner une constante de pointeur nul et un itérateur
n'est pas un pointeur.
Quel problème voudrais-tu résoudre ?
Je veux un tableau d'itérateurs sur des éléments d'une list.
Pour parcourir mes tableaux de pointeurs facilement, je les termine par un pointeur NULL.
Y a-t-il un équivalent pour les itérateurs ?
Je remarque cependant que ni c++ ni icpc (compilateur d'Intel) ne me jettent quand
j'affecte NULL à un itérateur.
Henri de Solages writes: | Est-il légal d'assigner la valeur NULL à un itérateur ?
NULL est censé désigner une constante de pointeur nul et un itérateur n'est pas un pointeur.
Quel problème voudrais-tu résoudre ?
Je veux un tableau d'itérateurs sur des éléments d'une list. Pour parcourir mes tableaux de pointeurs facilement, je les termine par un pointeur NULL. Y a-t-il un équivalent pour les itérateurs ? Je remarque cependant que ni c++ ni icpc (compilateur d'Intel) ne me jettent quand j'affecte NULL à un itérateur.
Gabriel Dos Reis
Henri de Solages writes:
| > Henri de Solages writes: | > | Est-il légal d'assigner la valeur NULL à un itérateur ? | > NULL est censé désigner une constante de pointeur nul et un | > itérateur | > n'est pas un pointeur. | > Quel problème voudrais-tu résoudre ? | | Je veux un tableau d'itérateurs sur des éléments d'une list. | Pour parcourir mes tableaux de pointeurs facilement, je les termine | par un pointeur NULL. Y a-t-il un équivalent pour les itérateurs ?
Si tu as un tableau, pourquoi voudrais-tu le terminer par par NULL ? Connaître la taille du tableau ne suffit pas pour savoir quand s'arrêter ?
| Je remarque cependant que ni c++ ni icpc (compilateur d'Intel) ne | me jettent quand j'affecte NULL à un itérateur.
Essaie g++ :-)
-- Gaby
Henri de Solages <solages@CICT.fr_> writes:
| > Henri de Solages <solages@CICT.fr_> writes:
| > | Est-il légal d'assigner la valeur NULL à un itérateur ?
| > NULL est censé désigner une constante de pointeur nul et un
| > itérateur
| > n'est pas un pointeur.
| > Quel problème voudrais-tu résoudre ?
|
| Je veux un tableau d'itérateurs sur des éléments d'une list.
| Pour parcourir mes tableaux de pointeurs facilement, je les termine
| par un pointeur NULL. Y a-t-il un équivalent pour les itérateurs ?
Si tu as un tableau, pourquoi voudrais-tu le terminer par par NULL ?
Connaître la taille du tableau ne suffit pas pour savoir quand
s'arrêter ?
| > Henri de Solages writes: | > | Est-il légal d'assigner la valeur NULL à un itérateur ? | > NULL est censé désigner une constante de pointeur nul et un | > itérateur | > n'est pas un pointeur. | > Quel problème voudrais-tu résoudre ? | | Je veux un tableau d'itérateurs sur des éléments d'une list. | Pour parcourir mes tableaux de pointeurs facilement, je les termine | par un pointeur NULL. Y a-t-il un équivalent pour les itérateurs ?
Si tu as un tableau, pourquoi voudrais-tu le terminer par par NULL ? Connaître la taille du tableau ne suffit pas pour savoir quand s'arrêter ?
| Je remarque cependant que ni c++ ni icpc (compilateur d'Intel) ne | me jettent quand j'affecte NULL à un itérateur.
Essaie g++ :-)
-- Gaby
Gabriel Dos Reis
Loïc Joly writes:
| > Bonjour. | > Est-il légal d'assigner la valeur NULL à un itérateur ? | | Souvent, l'équivalent moral de NULL pour un itérateur sur une | collection "c" est c.end()
| > Bonjour.
| > Est-il légal d'assigner la valeur NULL à un itérateur ?
|
| Souvent, l'équivalent moral de NULL pour un itérateur sur une
| collection "c" est c.end()
| > Bonjour. | > Est-il légal d'assigner la valeur NULL à un itérateur ? | | Souvent, l'équivalent moral de NULL pour un itérateur sur une | collection "c" est c.end()
Henri de Solages writes: | Est-il légal d'assigner la valeur NULL à un itérateur ?
NULL est censé désigner une constante de pointeur nul et un itérateur n'est pas un pointeur.
Quel problème voudrais-tu résoudre ?
Je veux un tableau d'itérateurs sur des éléments d'une list. Pour parcourir mes tableaux de pointeurs facilement, je les termine par un pointeur NULL. Y a-t-il un équivalent pour les itérateurs ? Je remarque cependant que ni c++ ni icpc (compilateur d'Intel) ne me jettent quand j'affecte NULL à un itérateur.
En général, on utilise std::vector plutôt que des tableaux, en C++. Plutôt que marquer le dernier par NULL, on parcours simplement le vector de begin() à end().
Je ne crois pas que ça ait un sens d'affecter NULL à un itérateur.
-- Ceux qui vivent, ce sont ceux qui luttent.
Henri de Solages <solages@CICT.fr_> writes:
| Est-il légal d'assigner la valeur NULL à un itérateur ?
NULL est censé désigner une constante de pointeur nul et un itérateur
n'est pas un pointeur.
Quel problème voudrais-tu résoudre ?
Je veux un tableau d'itérateurs sur des éléments d'une list.
Pour parcourir mes tableaux de pointeurs facilement, je les termine par
un pointeur NULL. Y a-t-il un équivalent pour les itérateurs ?
Je remarque cependant que ni c++ ni icpc (compilateur d'Intel) ne me
jettent quand j'affecte NULL à un itérateur.
En général, on utilise std::vector plutôt que des tableaux, en C++.
Plutôt que marquer le dernier par NULL, on parcours simplement le vector
de begin() à end().
Je ne crois pas que ça ait un sens d'affecter NULL à un itérateur.
Henri de Solages writes: | Est-il légal d'assigner la valeur NULL à un itérateur ?
NULL est censé désigner une constante de pointeur nul et un itérateur n'est pas un pointeur.
Quel problème voudrais-tu résoudre ?
Je veux un tableau d'itérateurs sur des éléments d'une list. Pour parcourir mes tableaux de pointeurs facilement, je les termine par un pointeur NULL. Y a-t-il un équivalent pour les itérateurs ? Je remarque cependant que ni c++ ni icpc (compilateur d'Intel) ne me jettent quand j'affecte NULL à un itérateur.
En général, on utilise std::vector plutôt que des tableaux, en C++. Plutôt que marquer le dernier par NULL, on parcours simplement le vector de begin() à end().
Je ne crois pas que ça ait un sens d'affecter NULL à un itérateur.
-- Ceux qui vivent, ce sont ceux qui luttent.
Marc Boyer
Henri de Solages a écrit :
Henri de Solages writes: | Est-il légal d'assigner la valeur NULL à un itérateur ?
NULL est censé désigner une constante de pointeur nul et un itérateur n'est pas un pointeur.
Quel problème voudrais-tu résoudre ?
Je veux un tableau d'itérateurs sur des éléments d'une list.
Pourquoi pas un vecteur ?
Pour parcourir mes tableaux de pointeurs facilement, je les termine par un pointeur NULL.
Sauf que ce ne sont pas forcément des pointeurs. Que des itérateurs de liste soient des pointeurs, primo, cela me supprend (et j'aimerais voir comment ils codent ++), secundo, même si cela est, c'est une implémentation possible, pas la seule possible.
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.
Y a-t-il un équivalent pour les itérateurs ? Je remarque cependant que ni c++ ni icpc (compilateur d'Intel) ne me jettent quand j'affecte NULL à un itérateur.
Amusant: tu as un bout de code.
Marc Boyer -- À vélo, prendre une rue à contre-sens est moins dangeureux que prendre un boulevard dans le sens légal. À qui la faute ?
Henri de Solages <solages@CICT.fr_> a écrit :
Henri de Solages <solages@CICT.fr_> writes:
| Est-il légal d'assigner la valeur NULL à un itérateur ?
NULL est censé désigner une constante de pointeur nul et un itérateur
n'est pas un pointeur.
Quel problème voudrais-tu résoudre ?
Je veux un tableau d'itérateurs sur des éléments d'une list.
Pourquoi pas un vecteur ?
Pour parcourir mes tableaux de pointeurs facilement,
je les termine par un pointeur NULL.
Sauf que ce ne sont pas forcément des pointeurs.
Que des itérateurs de liste soient des pointeurs,
primo, cela me supprend (et j'aimerais voir comment
ils codent ++), secundo, même si cela est, c'est
une implémentation possible, pas
la seule possible.
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.
Y a-t-il un équivalent pour les itérateurs ?
Je remarque cependant que ni c++ ni icpc (compilateur d'Intel) ne me jettent quand
j'affecte NULL à un itérateur.
Amusant: tu as un bout de code.
Marc Boyer
--
À vélo, prendre une rue à contre-sens est moins dangeureux
que prendre un boulevard dans le sens légal. À qui la faute ?
Henri de Solages writes: | Est-il légal d'assigner la valeur NULL à un itérateur ?
NULL est censé désigner une constante de pointeur nul et un itérateur n'est pas un pointeur.
Quel problème voudrais-tu résoudre ?
Je veux un tableau d'itérateurs sur des éléments d'une list.
Pourquoi pas un vecteur ?
Pour parcourir mes tableaux de pointeurs facilement, je les termine par un pointeur NULL.
Sauf que ce ne sont pas forcément des pointeurs. Que des itérateurs de liste soient des pointeurs, primo, cela me supprend (et j'aimerais voir comment ils codent ++), secundo, même si cela est, c'est une implémentation possible, pas la seule possible.
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.
Y a-t-il un équivalent pour les itérateurs ? Je remarque cependant que ni c++ ni icpc (compilateur d'Intel) ne me jettent quand j'affecte NULL à un itérateur.
Amusant: tu as un bout de code.
Marc Boyer -- À vélo, prendre une rue à contre-sens est moins dangeureux que prendre un boulevard dans le sens légal. À qui la faute ?
Stan
"Henri de Solages" a écrit dans le message de news:dfmsod$9u3$ | > Henri de Solages writes: | > | Est-il légal d'assigner la valeur NULL à un itérateur ? | > | > NULL est censé désigner une constante de pointeur nul et un itérateur | > n'est pas un pointeur. | > | > Quel problème voudrais-tu résoudre ? | | Je veux un tableau d'itérateurs sur des éléments d'une list. | Pour parcourir mes tableaux de pointeurs facilement, je les termine par un pointeur NULL. | Y a-t-il un équivalent pour les itérateurs ? | Je remarque cependant que ni c++ ni icpc (compilateur d'Intel) ne me jettent quand | j'affecte NULL à un itérateur.
Pourquoi ne pas placer ces itérateurs dans un vector ?
--
Stan .
"Henri de Solages" <solages@CICT.fr_> a écrit dans le message de
news:dfmsod$9u3$1@news.cict.fr...
| > Henri de Solages <solages@CICT.fr_> writes:
| > | Est-il légal d'assigner la valeur NULL à un itérateur ?
| >
| > NULL est censé désigner une constante de pointeur nul et un itérateur
| > n'est pas un pointeur.
| >
| > Quel problème voudrais-tu résoudre ?
|
| Je veux un tableau d'itérateurs sur des éléments d'une list.
| Pour parcourir mes tableaux de pointeurs facilement, je les termine par un
pointeur NULL.
| Y a-t-il un équivalent pour les itérateurs ?
| Je remarque cependant que ni c++ ni icpc (compilateur d'Intel) ne me
jettent quand
| j'affecte NULL à un itérateur.
Pourquoi ne pas placer ces itérateurs dans un vector ?
"Henri de Solages" a écrit dans le message de news:dfmsod$9u3$ | > Henri de Solages writes: | > | Est-il légal d'assigner la valeur NULL à un itérateur ? | > | > NULL est censé désigner une constante de pointeur nul et un itérateur | > n'est pas un pointeur. | > | > Quel problème voudrais-tu résoudre ? | | Je veux un tableau d'itérateurs sur des éléments d'une list. | Pour parcourir mes tableaux de pointeurs facilement, je les termine par un pointeur NULL. | Y a-t-il un équivalent pour les itérateurs ? | Je remarque cependant que ni c++ ni icpc (compilateur d'Intel) ne me jettent quand | j'affecte NULL à un itérateur.
Pourquoi ne pas placer ces itérateurs dans un vector ?
--
Stan .
Marc Boyer
Gabriel Dos Reis a écrit :
Loïc Joly writes:
| > Bonjour. | > Est-il légal d'assigner la valeur NULL à un itérateur ? | | Souvent, l'équivalent moral de NULL pour un itérateur sur une | collection "c" est c.end()
C'est marrant comme quoi des reflexes du C peuvent rester incrusté... Pour moi, end() dans une liste, c'est fondamentalement le pointeur NULL de toutes les listes chainées C. Et à chaque fois, faut que je me raisonne en me disant "mais non, comment faire end()-1 avec NULL ?". Mais c'est *le* piège (1) ou je tombe systématiquement.
D'ailleurs, un rapide coup d'oeuil sur le code de la list de mon g++ me dit que end() retourne un "_M_node", que begin() retourne un "_M_node->_M_next", et la définition de _M_node semble perdue deux niveaux d'héritage au dessus... Pas tout clair pour moi. Ils font une liste circulaire ?
Marc Boyer (1) enfin, *un* des pièges -- À vélo, prendre une rue à contre-sens est moins dangeureux que prendre un boulevard dans le sens légal. À qui la faute ?
Gabriel Dos Reis <gdr@integrable-solutions.net> a écrit :
Loïc Joly <loic.actarus.joly@wanadoo.fr> writes:
| > Bonjour.
| > Est-il légal d'assigner la valeur NULL à un itérateur ?
|
| Souvent, l'équivalent moral de NULL pour un itérateur sur une
| collection "c" est c.end()
C'est marrant comme quoi des reflexes du C peuvent
rester incrusté...
Pour moi, end() dans une liste, c'est fondamentalement
le pointeur NULL de toutes les listes chainées C.
Et à chaque fois, faut que je me raisonne en me disant
"mais non, comment faire end()-1 avec NULL ?".
Mais c'est *le* piège (1) ou je tombe systématiquement.
D'ailleurs, un rapide coup d'oeuil sur le code de
la list de mon g++ me dit que end() retourne un "_M_node",
que begin() retourne un "_M_node->_M_next", et la
définition de _M_node semble perdue deux niveaux d'héritage
au dessus... Pas tout clair pour moi.
Ils font une liste circulaire ?
Marc Boyer
(1) enfin, *un* des pièges
--
À vélo, prendre une rue à contre-sens est moins dangeureux
que prendre un boulevard dans le sens légal. À qui la faute ?
| > Bonjour. | > Est-il légal d'assigner la valeur NULL à un itérateur ? | | Souvent, l'équivalent moral de NULL pour un itérateur sur une | collection "c" est c.end()
C'est marrant comme quoi des reflexes du C peuvent rester incrusté... Pour moi, end() dans une liste, c'est fondamentalement le pointeur NULL de toutes les listes chainées C. Et à chaque fois, faut que je me raisonne en me disant "mais non, comment faire end()-1 avec NULL ?". Mais c'est *le* piège (1) ou je tombe systématiquement.
D'ailleurs, un rapide coup d'oeuil sur le code de la list de mon g++ me dit que end() retourne un "_M_node", que begin() retourne un "_M_node->_M_next", et la définition de _M_node semble perdue deux niveaux d'héritage au dessus... Pas tout clair pour moi. Ils font une liste circulaire ?
Marc Boyer (1) enfin, *un* des pièges -- À vélo, prendre une rue à contre-sens est moins dangeureux que prendre un boulevard dans le sens légal. À qui la faute ?
korchkidu
Gabriel Dos Reis wrote:
Loïc Joly writes:
| > Bonjour. | > Est-il légal d'assigner la valeur NULL à un itérateur ? | | Souvent, l'équivalent moral de NULL pour un itérateur sur une | collection "c" est c.end()
| > Bonjour.
| > Est-il légal d'assigner la valeur NULL à un itérateur ?
|
| Souvent, l'équivalent moral de NULL pour un itérateur sur une
| collection "c" est c.end()
| > Bonjour. | > Est-il légal d'assigner la valeur NULL à un itérateur ? | | Souvent, l'équivalent moral de NULL pour un itérateur sur une | collection "c" est c.end()