0

我认为这对你来说是一个简单的问题......我在 C++ 中很新......

所以我有一个这样定义的向量:

vector<vector<float> > big_vector;

我读取了一个文件并初始化了这个向量,然后 big_wector 中有大约 200,000 个元素。每个都是一个向量<float>

然后我想修改big_vector中的元素,对于某些元素我需要先调整它们的大小,(例如从0到300)

big_vector[i].resize(new_size);

当我运行程序时,首先它运行良好,经过一些修改,在上面的行出现了“分段错误”。

4

3 回答 3

5

首先,您需要调整 big_vector 的大小,以便它有一些要调整大小的向量。

int total_vectors = 100;
big_vector.resize(total_vectors);
for(int i = 0; i < total_vectors; ++i)
     big_vector[i].resize(new_size);
于 2009-03-18T20:49:59.983 回答
1

为什么需要调整向量的大小?难道简单的 push_back 还不够吗?还是您按索引设置一些值?

如果您按索引设置值,我建议将 std::generate_n 与 std::back_inserter 一起使用

于 2009-03-18T21:07:40.597 回答
0

你有一个向量的向量。

在访问big_vector[i](i 处的浮点向量)之前,您必须设置 big_vector 本身的大小。

于 2009-03-18T20:47:43.980 回答