for_each / copy / ostream_iterator / mem_fun
Bonjour, et merci de lire ce post.
Voici mon problème : j'ai un conteneur orienté de pointeurs d'objets de classe A, quelque chose comme :
Code:
std::list<A*> list;
la classe A peut être définie comme ceci :
Code:
1 2 3 4 5 6 7
| class A
{
public :
A();
~A();
std::string& getText();
} |
Et je voudrais concaténer ce que me renvoient les fonctions getText() des objets contenus dans la liste.
Autrement dit, ce que je voudrais faire c'est :
Code:
1 2 3 4 5
| std::ostringstream oss;
for(std::list<A*>::iterator it = list.begin(); it != list.end(); it++)
{
oss << it->getText();
} |
Maintenant, je me demandais deux choses :
1 - s'il n'existait pas un moyen de faire la même chose en utilisant mem_fun, un ostream_iterator et std::copy ?
2 - si une telle méthode existait, serait-elle plus rapide que celle-ci ?
Merci de votre aide