Je souhaiterais utiliser la fonction copy pour afficher une liste de listes.
Compilé avec g++ 3.4.2 sous Windows XP, le code ci-dessus génère une masse de messages d'erreurs (en substance : " no match for 'operator<<' " au niveau de l'opérateur 'operator=' de ostream_iterator).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 #include <iostream> #include <iterator> #include <list> #include <algorithm> using namespace std; typedef list<int> IntList; typedef list<IntList> ListList; ostream& operator<<(ostream& os, const IntList& l) { copy(l.begin(),l.end(),ostream_iterator<int>(cout,"\t")); return os; } int main() { ListList l(2,IntList(2)); copy(l.begin(),l.end(),ostream_iterator<IntList>(cout,"\n")); // Erreur de compilation return 0; }
Qu'est-ce qui ne va pas ?
Partager