Ho uno std :: istream che si riferisce ai dati della matrice, qualcosa di simile:C++ leggere da istream fino a capo (ma non gli spazi bianchi)
0.0 1.0 2.0
3.0 4.0 5.0
Ora, al fine di valutare il numero di colonne vorrei avere qualche codice come:
std::vector<double> vec;
double x;
while((...something...) && (istream >> x))
{
vec.push_back(x);
}
//Here vec should contain 0.0, 1.0 and 2.0
dove il ... qualcosa ... parte restituisce false dopo aver letto 2.0 e IStream nel punto dovrebbe essere di 3.0 in modo che la prossima
istream >> x;
dovrebbe impostare x uguale a 3.0.
Come conseguire questo risultato? Immagino che le condizioni di tempo
Grazie mille in anticipo per il vostro aiuto!
Giusto per chiarire, la ragione per cui vorrei seguire questo approccio (se fattibile) è di evitare di creare oggetti temporanei (a parte il doppio x). La matrice viene quindi creata da std :: scambiando il vettore sopra con la memoria interna della matrice (è implementata tramite un vettore std ::). – stepelu
bene, puoi farlo con un temporaneo in 10 linee semplici, oppure puoi farlo senza il temporaneo in 50 linee dure. Utilizzare un temporaneo. –