-1

質問があります。次のように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配列に成長させることができます

行数が増える配列の書き方

私が最初にいっぱいになったとき

そして、データ値は新しい、より大きな配列で完全です

ありがとうございました

4

3 に答える 3

1

http://www.cplusplus.com/articles/EzywvCM9/によると

「C++11 は std::array を提供します。これは、C 配列を置き換えることを目的としています。これは、動的サイズの std::vector に代わる固定サイズの軽量の代替手段です。」

「固定サイズ」に重点を置いています。したがって、より大きな配列を作成し、エントリを新しい配列にコピーする必要があると思います。

詳細はこちらhttp://en.cppreference.com/w/cpp/container/array

于 2012-11-12T08:37:58.340 に答える
0

新しいサイズで配列を再宣言してデータをコピーするか、std::vector を使用します

于 2012-11-12T08:17:46.973 に答える
0

配列のサイズが変わる場合は、配列を使用しないでください。代わりに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];
}
于 2012-11-12T11:19:48.667 に答える