On Fri, 13 May 2011 11:55:49 +0200, Thierry wrote:
for (it = vec.begin(); it != vec.end(); it++) if (it.value == 1) it = vec.erase(it);
Bonjour,
Tu peux peut-être essayer ça.
Alain
for (it = vec.begin(); it != vec.end(); it++) if (it.value == 1) { it = vec.erase(it); it --; }
-- ________________________________________ Alain Migeon Please reverse alain and migeon for replying.
Marc Boyer
Le 13-05-2011, Thierry a écrit :
Bonjour,
je veux supprimer un element d'un vecteur suivant un critere.
Le code type serait for (it = vec.begin(); it != vec.end(); it++) if (it.value == 1) it = vec.erase(it);
Et tu ne peux pas utiliser le vec.erase() dans ton cas ?
Marc Boyer -- En prenant aux 10% des francais les plus riches 12% de leurs revenus, on pourrait doubler les revenus des 10% les plus pauvres. http://www.inegalites.fr/spip.php?article1&id_mot0
Le 13-05-2011, Thierry <yarglah@com.invalid> a écrit :
Bonjour,
je veux supprimer un element d'un vecteur suivant un critere.
Le code type serait
for (it = vec.begin(); it != vec.end(); it++)
if (it.value == 1)
it = vec.erase(it);
Et tu ne peux pas utiliser le vec.erase() dans ton cas ?
Marc Boyer
--
En prenant aux 10% des francais les plus riches 12% de leurs revenus,
on pourrait doubler les revenus des 10% les plus pauvres.
http://www.inegalites.fr/spip.php?article1&id_mot0
je veux supprimer un element d'un vecteur suivant un critere.
Le code type serait for (it = vec.begin(); it != vec.end(); it++) if (it.value == 1) it = vec.erase(it);
Et tu ne peux pas utiliser le vec.erase() dans ton cas ?
Marc Boyer -- En prenant aux 10% des francais les plus riches 12% de leurs revenus, on pourrait doubler les revenus des 10% les plus pauvres. http://www.inegalites.fr/spip.php?article1&id_mot0
Thierry
"Alain Migeon" écrivait news::
On Fri, 13 May 2011 11:55:49 +0200, Thierry wrote:
for (it = vec.begin(); it != vec.end(); it++) if (it.value == 1) it = vec.erase(it);
Bonjour,
Tu peux peut-être essayer ça.
Alain
for (it = vec.begin(); it != vec.end(); it++) if (it.value == 1) { it = vec.erase(it); it --; }
Ca ne marchera pas si on supprime le premier element parce que it-- va foirer et même si on test != vec.begin on rate le nouvau premier element en réincrementant.
On Fri, 13 May 2011 11:55:49 +0200, Thierry <yarglah@com.invalid> wrote:
for (it = vec.begin(); it != vec.end(); it++)
if (it.value == 1)
it = vec.erase(it);
Bonjour,
Tu peux peut-être essayer ça.
Alain
for (it = vec.begin(); it != vec.end(); it++)
if (it.value == 1)
{
it = vec.erase(it);
it --;
}
Ca ne marchera pas si on supprime le premier element parce que it-- va
foirer et même si on test != vec.begin on rate le nouvau premier element en
réincrementant.
On Fri, 13 May 2011 11:55:49 +0200, Thierry wrote:
for (it = vec.begin(); it != vec.end(); it++) if (it.value == 1) it = vec.erase(it);
Bonjour,
Tu peux peut-être essayer ça.
Alain
for (it = vec.begin(); it != vec.end(); it++) if (it.value == 1) { it = vec.erase(it); it --; }
Ca ne marchera pas si on supprime le premier element parce que it-- va foirer et même si on test != vec.begin on rate le nouvau premier element en réincrementant.
-- Vainqueur du 1er WSOFRJCP
Jean-Marc Bourguet
Thierry writes:
Bonjour,
je veux supprimer un element d'un vecteur suivant un critere.
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Thierry <yarglah@com.invalid> writes:
Bonjour,
je veux supprimer un element d'un vecteur suivant un critere.
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Jean-Marc Bourguet
Poste sans reflechir, c'est pas bon...
Jean-Marc Bourguet writes:
Thierry writes:
Bonjour,
je veux supprimer un element d'un vecteur suivant un critere.
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Poste sans reflechir, c'est pas bon...
Jean-Marc Bourguet <jm@bourguet.org> writes:
Thierry <yarglah@com.invalid> writes:
Bonjour,
je veux supprimer un element d'un vecteur suivant un critere.
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Arnaud Giersch
Vendredi 13 mai 2011, vers 11:55:49 (+0200), Thierry a écrit:
je veux supprimer un element d'un vecteur suivant un critere.
Le code type serait for (it = vec.begin(); it != vec.end(); it++) if (it.value == 1) it = vec.erase(it);
Comme ça peut-être ?
it = std::remove(vec.begin(), vec.end(), 1); vec.erase(it, vec.end());
Arnaud
Vendredi 13 mai 2011, vers 11:55:49 (+0200), Thierry a écrit:
je veux supprimer un element d'un vecteur suivant un critere.
Le code type serait
for (it = vec.begin(); it != vec.end(); it++)
if (it.value == 1)
it = vec.erase(it);
Comme ça peut-être ?
it = std::remove(vec.begin(), vec.end(), 1);
vec.erase(it, vec.end());
En fait c'est un peu plus complique et je dois supprimer des "doublons" si ils ont les 2 premiers champs identiques mais que le 3 eme est inférieur a l'autre.
J'ai bien vu: http://learningcppisfun.blogspot.com/2008/04/remove-duplicates-from- vector.html mais std::unique doit se baser sur l'operateur == pour supprimer les elements, et ça correspond pas a ce que je veux, puisque je veux garder les elements strictement identiques.
De là je pense pas pouvoir faire autrement que d'utiliser 2 itérateurs.
En fait c'est un peu plus complique et je dois supprimer des "doublons" si
ils ont les 2 premiers champs identiques mais que le 3 eme est inférieur a
l'autre.
J'ai bien vu:
http://learningcppisfun.blogspot.com/2008/04/remove-duplicates-from-
vector.html
mais std::unique doit se baser sur l'operateur == pour supprimer les
elements, et ça correspond pas a ce que je veux, puisque je veux garder les
elements strictement identiques.
De là je pense pas pouvoir faire autrement que d'utiliser 2 itérateurs.
En fait c'est un peu plus complique et je dois supprimer des "doublons" si ils ont les 2 premiers champs identiques mais que le 3 eme est inférieur a l'autre.
J'ai bien vu: http://learningcppisfun.blogspot.com/2008/04/remove-duplicates-from- vector.html mais std::unique doit se baser sur l'operateur == pour supprimer les elements, et ça correspond pas a ce que je veux, puisque je veux garder les elements strictement identiques.
De là je pense pas pouvoir faire autrement que d'utiliser 2 itérateurs.
-- Vainqueur du 1er WSOFRJCP
Marc
Thierry wrote:
J'ai bien vu: http://learningcppisfun.blogspot.com/2008/04/remove-duplicates-from- vector.html mais std::unique doit se baser sur l'operateur == pour supprimer les elements, et ça correspond pas a ce que je veux, puisque je veux garder les elements strictement identiques.
unique, comme tous les algos de la STL, peut prendre un foncteur comme argument supplémentaire, au lieu d'utiliser ==.
Thierry wrote:
J'ai bien vu:
http://learningcppisfun.blogspot.com/2008/04/remove-duplicates-from-
vector.html
mais std::unique doit se baser sur l'operateur == pour supprimer les
elements, et ça correspond pas a ce que je veux, puisque je veux garder les
elements strictement identiques.
unique, comme tous les algos de la STL, peut prendre un foncteur comme
argument supplémentaire, au lieu d'utiliser ==.
J'ai bien vu: http://learningcppisfun.blogspot.com/2008/04/remove-duplicates-from- vector.html mais std::unique doit se baser sur l'operateur == pour supprimer les elements, et ça correspond pas a ce que je veux, puisque je veux garder les elements strictement identiques.
unique, comme tous les algos de la STL, peut prendre un foncteur comme argument supplémentaire, au lieu d'utiliser ==.
Thierry
Marc écrivait news:iqjbfa$2e9$:
Thierry wrote:
J'ai bien vu: http://learningcppisfun.blogspot.com/2008/04/remove-duplicates-from- vector.html mais std::unique doit se baser sur l'operateur == pour supprimer les elements, et ça correspond pas a ce que je veux, puisque je veux garder les elements strictement identiques.
unique, comme tous les algos de la STL, peut prendre un foncteur comme argument supplémentaire, au lieu d'utiliser ==.
Ok, la callback "foncteur" a deux arguments item1 et item2. Quand je retourne true il supprimera item1 ou item2 ?? Je ne trouve pas dans la doc.
-- Vainqueur du 1er WSOFRJCP
Marc <marc.glisse@gmail.com> écrivait
news:iqjbfa$2e9$2@news-rocq.inria.fr:
Thierry wrote:
J'ai bien vu:
http://learningcppisfun.blogspot.com/2008/04/remove-duplicates-from-
vector.html
mais std::unique doit se baser sur l'operateur == pour supprimer les
elements, et ça correspond pas a ce que je veux, puisque je veux
garder les elements strictement identiques.
unique, comme tous les algos de la STL, peut prendre un foncteur comme
argument supplémentaire, au lieu d'utiliser ==.
Ok, la callback "foncteur" a deux arguments item1 et item2.
Quand je retourne true il supprimera item1 ou item2 ??
Je ne trouve pas dans la doc.
J'ai bien vu: http://learningcppisfun.blogspot.com/2008/04/remove-duplicates-from- vector.html mais std::unique doit se baser sur l'operateur == pour supprimer les elements, et ça correspond pas a ce que je veux, puisque je veux garder les elements strictement identiques.
unique, comme tous les algos de la STL, peut prendre un foncteur comme argument supplémentaire, au lieu d'utiliser ==.
Ok, la callback "foncteur" a deux arguments item1 et item2. Quand je retourne true il supprimera item1 ou item2 ?? Je ne trouve pas dans la doc.
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index. html Site de usenet-fr: http://www.usenet-fr.news.eu.org
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index. html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index. html Site de usenet-fr: http://www.usenet-fr.news.eu.org