C++: Einlesen von Daten

Code-Beispiel

// read homework grades from an input stream into a vector<double> istream& read_hw(istream& in, vector<double>& hw)
{
         if (in) {
              // get rid of previous contents
              hw.clear() ;
             // read 
             double x;
             while (in >> x)
                            hw.push_back(x);
           // clear the stream so that input will work for the next
           in.clear();
           }
     return in;
}

LValues

Da hw kein const-Objekt ist, muss der mitgegebene Vektor „leben“, also ein lvalue sein.

Angenommen

vector<double> emptyvec()
{
   vector<double> v;
   // no elements
   return v;
}

mit dem Aufruf

read_hw(cin, emptyvec());
// error: emptyvec() is not an lvalue

kommt es zu einem Fehler, da der leere Vektor nicht außerhalb des Methodenaufrufs read_hw existiert.

Quelle: aus Koenig/Moo Accelerated C++

Schreibe einen Kommentar