-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,它可以动态增长。在二维数据结构的情况下,使用向量的向量。在 C++11ish 伪代码中:

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 回答
0

重新声明具有新大小的数组并复制数据,或使用 std::vector

于 2012-11-12T08:17:46.973 回答