Essaie #include <set> pour voir :roll:
Et ce sont des includes, pas des bibliothèques ;)
Version imprimable
Essaie #include <set> pour voir :roll:
Et ce sont des includes, pas des bibliothèques ;)
ah oui dsl
Je croit n'avoir rien oubliéCode:
1
2
3
4
5
6 #include <iostream> #include <fstream> #include <set> #include <string> #include <algorithm> #include <iterator>
lors de l'appel de la fonction
je doit faire comment ?
Code:
1
2
3 std::ifstream fin("resultat.txt"); std::ifstream fout("finaly.txt"); supprimer_redondance(fin, fout);
Tu doit faire
essais de comprendre le code. sinon cela ne sert a rien.Code:
1
2
3
4 std::ifstream fin("resultat.txt"); std::ofstream fout("finaly.txt"); supprimer_redondance(fin, fout);
Mais tu as bien fait, ça permet de montrer au grand nombre des techniques originales.
Je n'imaginais pas que ce probleme pouvait se resoudre en si peu de lignes (plus d'includes que de code :lol:).
Tu passes par "effective stl" pour la découvrir ou tu fouines simplement dans la doc ?
c'est une nouvelle notions pour moi , :roll:
et franchement j'ai rien compris de ton code 8O8O:aie::aie:
voici une bonne introduction
http://r0d.developpez.com/articles/algos-stl/
Nhésite pas à demander ce que tu ne comprend pas
et pourquoi pas tu commence par me montrer comment faire l'appel a ta fonction afin de voir l'utilité :D:D:D:D:D
Citation:
C'est pour intéresser les gens.
je veux dire que tu ne m'as pas montré comment faire l'appel a la fonctionCode:
1
2
3
4 std::ifstream fin("resultat.txt"); std::ofstream fout("finaly.txt"); supprimer_redondance(fin, fout);
tu ne m'as pas montré ou es l'erreur ici
si.
ouai c'est vrai il n'y as qu'une lettre de différent :aie:.
dsl
Code:
1
2
3
4 std::ifstream fin("resultat.txt"); std::ofstream fout("finaly.txt"); supprimer_redondance(fin, fout);
Dans la Faq aussi
http://cpp.developpez.com/faq/cpp/?p...ream_iterators
tu peut ecrit la fonction comme ca aussi :
peut etre plus facile a comprendre;)Code:
1
2
3
4
5
6
7
8
9
10
11 void supprimer_redondance(std::ifstream &fin, std::ofstream &fout) { std::set<std::string> mySet; //lecture du fichier mot à mot et insertion dans le set pour enlever les doublons mySet.insert(std::istream_iterator<std::string>(fin), std::istream_iterator<std::string>()); //ecriture dans le fichier de sortie. Les doublons on disparue!!! std::copy(mySet.begin(), mySet.end(),std::ostream_iterator<std::string>(fout,"\n")); //pour vider le buffer fout.flush(); }
Je comprend pas ta question... tu n'arrive pas as utiliser le code?
voici un main
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 #include <iostream> #include <fstream> #include <set> #include <string> #include <algorithm> #include <iterator> void supprimer_redondance(std::istream &fin, std::ostream &fout) { std::set<std::string> mySet; //lecture du fichier mot à mot et insertion dans le set pour enlever les doublons mySet.insert(std::istream_iterator<std::string>(fin), std::istream_iterator<std::string>()); //ecriture dans le fichier de sortie. Les doublons on disparue!!! std::copy(mySet.begin(), mySet.end(),std::ostream_iterator<std::string>(fout,"\n")); //pour vider le buffer fout.flush(); } int main() { std::ifstream fin("c:/essai.txt"); std::ofstream fout("c:/essaiout.txt"); //le resultat est ecrit dans le fichier supprimer_redondance(fin,fout); //le resultat est ecrit dans la console supprimer_redondance(fin,std::cout); return 0; }
alors ça...
8O8O
http://www.davethehat.com/articles/eff_stl.htm
je ne pensais pas retrouver le même code
8O8O8O
c'est de ca que tu me parlé ou du bouquin?
Ah c'est marrant, non je parlais juste du bouquin de Meyers http://www.amazon.com/Effective-STL-.../dp/0201749629
Je m'apprête à le lire.
merci beaucoups Mongaulois pour ta solutions , maintenant je vais commencer a essayé de comprendre ta fonction :yaisse2::yaisse2:
il l'explique bien ici
http://www.davethehat.com/articles/eff_stl.htm