2016-05-25 6 views
-2

Values from txt fileファイルのベクトル<ベクトル<double>>の値をどのように格納できますか?

私は.txtファイルの値を持っており、変数に格納したいと考えています。ファイルの最初の行に私はまた、他の行の13個の値を有し、そしてIは、次の形式で格納したい:

vector<vector<double>> x; 

--first行

x[0][0] has the value of the first row and first col 
x[0][1] has the value of the first row and the second col 
x[1][0] has the value of the second row and the first col... and successively 

答えて

0

[編集]

私はあなたが問題を提起しなかったため、あなたが試したことについて何も言わなかったし、何が失敗したのか、この回答であなたを助けているのか分かりません。

あなたの問題に対する解決策を見つけてくれるとは思ってもらえませんでした。興味があったので、ちょうど私の所見を掲載しました。

しかしこれがないこのフォーラムは動作するはず方法ですが、プログラミングの学習についてです、そしてあなただけしようとしても、今あなたが学ぶなくなるまで、あなたの思考プロセスが何であったかを説明せずにお願いします。

とにかく、これがインスピレーションを得た答えを読んでください。そこから学ぶべき重要な要素があります。

[/編集]

このコードは、あなたがC++の重要な概念を理解する助けになるはずですつまり、このanswer触発されています。

Explanation for the emplace_back vs push_back.

Explanation for the Range-based for loop: "for (auto i : collection)"

#include <vector> 
#include <string> 
#include <fstream> 
#include <sstream> 
#include <iterator> 
#include <cassert> 
#include <iostream> 

int main() 
{ 
    std::vector< std::vector<double> > values; 

    std::ifstream ifs; 
    std::string line; 
    ifs.open("test.txt"); 
    while(getline(ifs,line)) 
    { 
     std::istringstream is(line); 
     std::vector<double> ns; 
     std::copy(std::istream_iterator<double>(is) 
       , std::istream_iterator<double>() 
       , std::back_inserter(ns)); 

     assert(ns.size() > 1); //throw something 

     values.emplace_back(std::vector<double>(ns.begin(), ns.end())); 
    } 

    for (auto line : values) 
    { 
     for (auto value: line) 
     { 
      std::cout << value << " "; 
     } 
     std::cout << std::endl; 
    } 
} 
+0

まず自分自身の努力の少しに入れて気にすることはできません人々を奨励しないでください。 –

+0

私は知っていますが、なぜ私が答えを出したか説明する時間がありませんでした。 – vianney

+1

ネストされたベクトルの宣言に2つの '>の間にスペースを入れてください。そうでなければ、' cin 'の' >> 'と間違えることがあります。 –

関連する問題