Ich möchte alle Zeilen aus einer Textdatei in ein vector<string
laden durch ihr Angebot Konstruktor und dann gibt sie durch cout
:Wie wird ein Vector Range Constructor richtig verwendet?
#include<iostream>
#include<fstream>
#include<vector>
#include<iterator>
using namespace std;
int main()
{
ifstream file("file.txt");
vector<string> strings(istream_iterator<string>(file) , istream_iterator<string>());
for(auto s : strings)
cout << s << endl;
return 0;
}
Beim Versuch, den obigen Code ich mehrere Fehler zu kompilieren, zum Beispiel:
error: no matching function for call to ‘begin(std::vector<std::basic_string<char> > (&) (std::istream_iterator<std::basic_string<char> >, std::istream_iterator<std::basic_string<char> > (*) ()))’
for(auto s : strings)
^
und einige andere ...
ich glaube, ich bin etwas offensichtlich hier fehlt, kann jemand bitte helfen?
Siehe [Most Vexing Parse] (http://en.wikipedia.org/wiki/Most_vexing_parse). – chris
Dies könnte helfen: http://stackoverflow.com/questions/7007817/a-confusing-detail-about-the-most-vexing-parse – templatetypedef
Got it. Soll ich diese Frage löschen oder selbst beantworten? – JLagana