[STL]Afficher une liste de listes avec copy
Je souhaiterais utiliser la fonction copy pour afficher une liste de listes.
Code:
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;
} |
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).
Qu'est-ce qui ne va pas ?