eleganter von Datei lesen...
-
Ich möchte so effizient wie möglich von einer Datei in einem vector lesen...
Habt Ihr eine bessere Idee#include <iostream> # include <fstream> #include <vector> using namespace std; int main() { vector<float> x; float f; ifstream infile; infile.open ("signal.txt", ifstream::in); while(infile>>f)x.push_back(f); infile.close(); //for(int i=0;i<x.size();++i)cout<<x[i]<<endl; return 0; }Danke
-
Ob das wirklich schneller geht, weiß ich nicht, aber es sieht eleganter aus

std::copy(std::istream_iterator<float>(infile),std::istream_iterator<float>(),std::back_inserte(x));
-
#include <algorithm> #include <iterator> #include <vector> #include <fstream> int main() { std::ifstream ifs( "signal.txt" ); std::vector<float> vec; std::copy( std::istream_iterator<float>(ifs), std::istream_iterator<float(), std::back_inserter(vec) ); }
-
Danke für Code! Es ist tatsächlich eleganter...STL ist KLASSE
Als Anfänger muss ich alles noch verdauen.
1. istream_iterator<float>(ifs)-> ein Iterator auf first position von ifs?
2. istream_iterator<float>()-> ????
-
Ein Ende-Iterator liegt immer ein Element hinter dem letzten Datum. In diesem Fall könnte der leere istream_iterator als "End-Of-File" angesehen werden (welches sozusagen ein Element hinter dem letzten float in der Datei steht).
-
Danke!
Hier ist eigentlich alles ganz gut dokumentiert:http://wwwasd.web.cern.ch/wwwasd/lhc%2B%2B/RW/stdlibcr/ist_4337.htm
kennt Ihr andere bessere Links als STL reference?
-
Meine Lieblingsreferenz ist SGI http://www.sgi.com/tech/stl/. Iostreams fehlen zwar, aber für container, string, iteratoren, funktoren, algorithmen usw. ganz brauchbar.
Tommi