Je me trouve devant un probleme. Je souhaite utiliser set_intersection pour
obtenir l'intersection de 2 ensembles A et B.
pour cela il faut:
set_intersection(A.begin(),A.end(),B.begin(),B.end(),result.begin());//où
result est aussi un set
or je ne connais pas a priori la taille de result...
Quelle est la solution standard a ce probleme ?
Le stroustrup est tres vague la dessus ....
Je suis meme ouvert a la possibilité d'utiliser un autre type de container
pour result meme si je prefere un set.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Gourgouilloult
May wrote:
set_intersection(A.begin(),A.end(),B.begin(),B.end(),result.begin());//où result est aussi un set or je ne connais pas a priori la taille de result...
Je ne connais pas encore, mais ce n'est pas à ça que servent les back_inserter ?
Quelle est la solution standard a ce probleme ? Le stroustrup est tres vague la dessus ....
§19.2.4 Sinon, c'est vrai qu'il aurait pu donner un exemple un peu plus intéressant qu'avec des char[]...
Je suis meme ouvert a la possibilité d'utiliser un autre type de container pour result meme si je prefere un set.
Je n'étudie pas la question très en profondeur, mais il est probable qu'un back_inserter dans un set ne passe pas très bien, puisque le set veut trier lui-même ses éléments. J'imagine qu'il y a une spécialisation qui va bien...
Gourgou
May wrote:
set_intersection(A.begin(),A.end(),B.begin(),B.end(),result.begin());//où
result est aussi un set
or je ne connais pas a priori la taille de result...
Je ne connais pas encore, mais ce n'est pas à ça que servent les
back_inserter ?
Quelle est la solution standard a ce probleme ?
Le stroustrup est tres vague la dessus ....
§19.2.4
Sinon, c'est vrai qu'il aurait pu donner un exemple un peu plus
intéressant qu'avec des char[]...
Je suis meme ouvert a la possibilité d'utiliser un autre type de container
pour result meme si je prefere un set.
Je n'étudie pas la question très en profondeur, mais il est probable
qu'un back_inserter dans un set ne passe pas très bien, puisque le set
veut trier lui-même ses éléments. J'imagine qu'il y a une spécialisation
qui va bien...
set_intersection(A.begin(),A.end(),B.begin(),B.end(),result.begin());//où result est aussi un set or je ne connais pas a priori la taille de result...
Je ne connais pas encore, mais ce n'est pas à ça que servent les back_inserter ?
Quelle est la solution standard a ce probleme ? Le stroustrup est tres vague la dessus ....
§19.2.4 Sinon, c'est vrai qu'il aurait pu donner un exemple un peu plus intéressant qu'avec des char[]...
Je suis meme ouvert a la possibilité d'utiliser un autre type de container pour result meme si je prefere un set.
Je n'étudie pas la question très en profondeur, mais il est probable qu'un back_inserter dans un set ne passe pas très bien, puisque le set veut trier lui-même ses éléments. J'imagine qu'il y a une spécialisation qui va bien...
Gourgou
kanze
"May" wrote in message news:<bm347s$7b9$...
Je me trouve devant un probleme. Je souhaite utiliser set_intersection pour obtenir l'intersection de 2 ensembles A et B. pour cela il faut: set_intersection(A.begin(),A.end(),B.begin(),B.end(),result.begin());//où result est aussi un set
or je ne connais pas a priori la taille de result...
Et même si tu le connaissais... Tu ne peux pas prédimensionnes un std::set.
Quelle est la solution standard a ce probleme ?
A priori, un insert_iterator. Essaie std::inserter( result, result.end() ) comme dernière paramètre.
-- 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
"May" <May_san45@hotmail.com> wrote in message
news:<bm347s$7b9$1@cauchy.enpc.fr>...
Je me trouve devant un probleme. Je souhaite utiliser set_intersection
pour obtenir l'intersection de 2 ensembles A et B.
pour cela il faut:
set_intersection(A.begin(),A.end(),B.begin(),B.end(),result.begin());//où
result est aussi un set
or je ne connais pas a priori la taille de result...
Et même si tu le connaissais... Tu ne peux pas prédimensionnes un
std::set.
Quelle est la solution standard a ce probleme ?
A priori, un insert_iterator. Essaie
std::inserter( result, result.end() )
comme dernière paramètre.
--
James Kanze GABI Software mailto:kanze@gabi-soft.fr
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
Je me trouve devant un probleme. Je souhaite utiliser set_intersection pour obtenir l'intersection de 2 ensembles A et B. pour cela il faut: set_intersection(A.begin(),A.end(),B.begin(),B.end(),result.begin());//où result est aussi un set
or je ne connais pas a priori la taille de result...
Et même si tu le connaissais... Tu ne peux pas prédimensionnes un std::set.
Quelle est la solution standard a ce probleme ?
A priori, un insert_iterator. Essaie std::inserter( result, result.end() ) comme dernière paramètre.
-- 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
kanze
Gourgouilloult <gourgou_at_club-internet_point_fr> wrote in message news:<3f8538ba$0$24672$...
May wrote:
set_intersection(A.begin(),A.end(),B.begin(),B.end(),result.begin());//où result est aussi un set or je ne connais pas a priori la taille de result...
Je ne connais pas encore, mais ce n'est pas à ça que servent les back_inserter ?
back_inserter ne marche que si la collection a une fonction push_back. Ce n'est pas le cas de set. En revanche, inserter, tout court, démande une fonction insert qui prend un itérateur et une valeur. Ce qu'a std::set.
-- 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
Gourgouilloult <gourgou_at_club-internet_point_fr> wrote in message
news:<3f8538ba$0$24672$7a628cd7@news.club-internet.fr>...
May wrote:
set_intersection(A.begin(),A.end(),B.begin(),B.end(),result.begin());//où
result est aussi un set or je ne connais pas a priori la taille de
result...
Je ne connais pas encore, mais ce n'est pas à ça que servent les
back_inserter ?
back_inserter ne marche que si la collection a une fonction push_back.
Ce n'est pas le cas de set. En revanche, inserter, tout court, démande
une fonction insert qui prend un itérateur et une valeur. Ce qu'a
std::set.
--
James Kanze GABI Software mailto:kanze@gabi-soft.fr
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
Gourgouilloult <gourgou_at_club-internet_point_fr> wrote in message news:<3f8538ba$0$24672$...
May wrote:
set_intersection(A.begin(),A.end(),B.begin(),B.end(),result.begin());//où result est aussi un set or je ne connais pas a priori la taille de result...
Je ne connais pas encore, mais ce n'est pas à ça que servent les back_inserter ?
back_inserter ne marche que si la collection a une fonction push_back. Ce n'est pas le cas de set. En revanche, inserter, tout court, démande une fonction insert qui prend un itérateur et une valeur. Ce qu'a std::set.
-- 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
May
Je me trouve devant un probleme. Je souhaite utiliser set_intersection pour obtenir l'intersection de 2 ensembles A et B. pour cela il faut: