質問があります。次のようにtxtファイルを読んだ場合:
12.5、14.8、17.4
21.6、25.9、32.4
27.8,36.2,45.1
23.8,28.6,40.5
の二次元配列に格納する値を読み込みます2 x 3
C++11 書き込みの使用方法
私はもともと2 x 3
二次元配列を4 x 3
配列に成長させることができます
行数が増える配列の書き方
私が最初にいっぱいになったとき
そして、データ値は新しい、より大きな配列で完全です
ありがとうございました
質問があります。次のようにtxtファイルを読んだ場合:
12.5、14.8、17.4
21.6、25.9、32.4
27.8,36.2,45.1
23.8,28.6,40.5
の二次元配列に格納する値を読み込みます2 x 3
C++11 書き込みの使用方法
私はもともと2 x 3
二次元配列を4 x 3
配列に成長させることができます
行数が増える配列の書き方
私が最初にいっぱいになったとき
そして、データ値は新しい、より大きな配列で完全です
ありがとうございました
http://www.cplusplus.com/articles/EzywvCM9/によると
「C++11 は std::array を提供します。これは、C 配列を置き換えることを目的としています。これは、動的サイズの std::vector に代わる固定サイズの軽量の代替手段です。」
「固定サイズ」に重点を置いています。したがって、より大きな配列を作成し、エントリを新しい配列にコピーする必要があると思います。
新しいサイズで配列を再宣言してデータをコピーするか、std::vector を使用します
配列のサイズが変わる場合は、配列を使用しないでください。代わりにstd::vector
、動的に拡張できる を使用してください。2 次元データ構造の場合は、ベクトルのベクトルを使用します。C++11っぽい擬似コード:
using namespace std;
vector<vector<double> > data;
vector<double> dataLine;
vector<double>* readDataLine(istream file) {
vector<double>* line = new vector<double>;
for (each row...) {
double value;
file >> value;
line->append(value);
}
return line;
}
void readFile() {
for (each line...) {
vector<double>* line = readLine(someFileStream)
data.append(line);
}
// access a single element like in an array:
double element = data[lineNo][rowNo];
}