Salut,


C'est encore moi... Et pour une question assez proche de la précédente (j'ai hésité à poster à la suite).

Je me doute que l'opérateur >> doit appeller une méthode du style operator>>(), et ce coup-ci j'aimerais savoir comment elle fonctionne avec un string (et non pas un const char* ce coup-ci j'en suis sûr ).

J'ai le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
std::ifstream in("out.cpp.txt");
 
std::string line;
for (int i=0; i<10000000; i++) {
    in >> line;
}
La ligne in >> line crée-t-elle un nouvel objet string ou bien modifie-t-elle la valeur de l'objet line existant ?


Et plus globalement, est-ce que vous voyez quelques choses d'incorrect ou de problématique dans le code suivant (en particulier du coté performances), si ce n'est son utilité :
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
22
#include < string >
#include < iostream >
#include < fstream >
 
int main(int argc, char *argv[]) {
    std::ofstream out("out.cpp.txt");
 
    for (int i=0; i<10000000; i++) {
        out << "Caraca, estou passando na posição " << i << std::endl;
    }
 
    out.close();
 
    std::ifstream in("out.cpp.txt");
 
    std::string line;
    for (int i=0; i<10000000; i++) {
        in >> line;
    }
 
    in.close();
}


a++