bjr,
j'ai le code suivant que j'ai récupéré dans un cours de structure de
données. J'ai essayé de le compilé et j'ai plein d'erreurs ... quelqu'un
pourra t il m'aider a comprendre le code.
ostream& operator<< (ostream& out, (const vector<int,allocator>& v))
{
copy (v.begin(), v.end(), ostream_iterator<int>(out," "));
return out;
}
// c'est surtout cette partie que je ne comprend pas bien et qui ne compile
pas.
// avec copy, je suis sensé recopier un vector dans le flux de sortie, pour
qu'il soit affiché par cout <<
int main ()
{
vector<int,allocator> vi;
int i;
for ( i=0; i<10; i++)
{
vi.insert(vi.begin(),i);
}
cout << vi << endl;
int half=vi.size()>>1;
for ( i=0; i < half; i++)
vi.erase(vi.begin());
cout << vi << endl;
return 0;
}
| "heinquoi" <nospam* a écrit dans le message | de news:40bbb1b3$0$21504$
| > ok effectivement ca marche sous mingW sous windows, et sous bcc32 | > . Mais j'ai encore un souci sous Intel 8 C++
| je me demande si pour l'intel 8 C++ le pb ne viendrait pas des | versions de la stl sous visual studio, elle n'est peut etre pas à | jours !
Tu as inclus <iostream.h> au lieu de <iostream>
(si si, James :-))
Je n'ai rien contre qu'on le dise quand c'est la vraie erreur, comme c'est le cas ici.
Aussi, si on tient à utiliser les nouveautés comme les [io]stream_iterator, c'est mieux d'utiliser ce qui est nouveau partout. Je trouve normal qu'un implémenteur fournit un <iostream.h> compatible avec l'ancien pour faire marcher le code existant, mais je ne démande pas qu'il le fasse marcher avec les [io]stream_iterator en plus. Au moins qu'il ait sortie des versions du compilateur où ça avait marché.
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Gabriel Dos Reis <gdr@integrable-solutions.net> wrote in message
news:<m3oeo4p51y.fsf@uniton.integrable-solutions.net>...
| "heinquoi" <nospam*heinquoi1@libertysurf.fr> a écrit dans le message
| de news:40bbb1b3$0$21504$626a14ce@news.free.fr...
| > ok effectivement ca marche sous mingW sous windows, et sous bcc32
| > . Mais j'ai encore un souci sous Intel 8 C++
| je me demande si pour l'intel 8 C++ le pb ne viendrait pas des
| versions de la stl sous visual studio, elle n'est peut etre pas à
| jours !
Tu as inclus <iostream.h> au lieu de <iostream>
(si si, James :-))
Je n'ai rien contre qu'on le dise quand c'est la vraie erreur, comme
c'est le cas ici.
Aussi, si on tient à utiliser les nouveautés comme les
[io]stream_iterator, c'est mieux d'utiliser ce qui est nouveau partout.
Je trouve normal qu'un implémenteur fournit un <iostream.h> compatible
avec l'ancien pour faire marcher le code existant, mais je ne démande
pas qu'il le fasse marcher avec les [io]stream_iterator en plus. Au
moins qu'il ait sortie des versions du compilateur où ça avait marché.
--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
| "heinquoi" <nospam* a écrit dans le message | de news:40bbb1b3$0$21504$
| > ok effectivement ca marche sous mingW sous windows, et sous bcc32 | > . Mais j'ai encore un souci sous Intel 8 C++
| je me demande si pour l'intel 8 C++ le pb ne viendrait pas des | versions de la stl sous visual studio, elle n'est peut etre pas à | jours !
Tu as inclus <iostream.h> au lieu de <iostream>
(si si, James :-))
Je n'ai rien contre qu'on le dise quand c'est la vraie erreur, comme c'est le cas ici.
Aussi, si on tient à utiliser les nouveautés comme les [io]stream_iterator, c'est mieux d'utiliser ce qui est nouveau partout. Je trouve normal qu'un implémenteur fournit un <iostream.h> compatible avec l'ancien pour faire marcher le code existant, mais je ne démande pas qu'il le fasse marcher avec les [io]stream_iterator en plus. Au moins qu'il ait sortie des versions du compilateur où ça avait marché.
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
enlèves le // ou ajoutes std:: devant les types ostream, vector, etc... Et avant de poster dans un forum, va en cours ;-)
ostream& operator<< (ostream& out, (const vector<int,allocator>& v)) { copy (v.begin(), v.end(), ostream_iterator<int>(out," ")); return out; } // c'est surtout cette partie que je ne comprend pas bien et qui ne compile
pas. // avec copy, je suis sensé recopier un vector dans le flux de sortie, pour
qu'il soit affiché par cout <<
int main () { vector<int,allocator> vi; int i; for ( i=0; i<10; i++) { vi.insert(vi.begin(),i); }
cout << vi << endl; int half=vi.size()>>1; for ( i=0; i < half; i++) vi.erase(vi.begin()); cout << vi << endl; return 0; }
enlèves le // ou ajoutes std:: devant les types ostream, vector, etc...
Et avant de poster dans un forum, va en cours ;-)
ostream& operator<< (ostream& out, (const vector<int,allocator>& v))
{
copy (v.begin(), v.end(), ostream_iterator<int>(out," "));
return out;
}
// c'est surtout cette partie que je ne comprend pas bien et qui ne
compile
pas.
// avec copy, je suis sensé recopier un vector dans le flux de sortie,
pour
qu'il soit affiché par cout <<
int main ()
{
vector<int,allocator> vi;
int i;
for ( i=0; i<10; i++)
{
vi.insert(vi.begin(),i);
}
cout << vi << endl;
int half=vi.size()>>1;
for ( i=0; i < half; i++)
vi.erase(vi.begin());
cout << vi << endl;
return 0;
}
enlèves le // ou ajoutes std:: devant les types ostream, vector, etc... Et avant de poster dans un forum, va en cours ;-)
ostream& operator<< (ostream& out, (const vector<int,allocator>& v)) { copy (v.begin(), v.end(), ostream_iterator<int>(out," ")); return out; } // c'est surtout cette partie que je ne comprend pas bien et qui ne compile
pas. // avec copy, je suis sensé recopier un vector dans le flux de sortie, pour
qu'il soit affiché par cout <<
int main () { vector<int,allocator> vi; int i; for ( i=0; i<10; i++) { vi.insert(vi.begin(),i); }
cout << vi << endl; int half=vi.size()>>1; for ( i=0; i < half; i++) vi.erase(vi.begin()); cout << vi << endl; return 0; }