solch ein Code-Segment Gegeben:Strange Fehler beim Verwenden der Vorlage <Klasse InputIterator> Zeichenfolge (InputIterator begin, InputIterator end);
#include <iostream>
#include <iterator>
#include <fstream>
#include <string>
using namespace std;
int main(){
ifstream file("1.txt");
string str((istream_iterator<char>(file)),istream_iterator<char>());
file.close();
cout<<str<<endl;
}
Der Code konstruiert eine Zeichenfolge aus einer Datei istream_iterator verwenden.
Beachten Sie, dass der erste Parameter des Zeichenfolgenkonstruktors mit einem Paar Klammern eingeschlossen ist. Wenn ich die Klammern weglasse, wird ein Fehler angezeigt. In VC++ 2008 wird ein Verbindungsfehler auftreten. In G ++ hat der Code eine falsche Ausgabe.
Ich fühle mich sehr seltsam über die Klammern. Was ist der Unterschied und warum?