首页 > 解决方案 > 在特定位置添加多维向量中的值

问题描述

我不明白如何在特定位置的多维向量中添加新元素。我的载体是

std::vector<std::vector<char>> symbols 

我有两个索引 i0 和 i1 以及一个 char 值。我想在该特定位置插入值,但是如果我尝试执行以下操作:

symbols[i0][i1] = value

如何使用插入方法?我的向量必须是动态的。当我在特定位置插入一个值时,它的尺寸必须改变。

标签: c++vector

解决方案


为了让您索引到您的多维向量,您必须已经完全初始化它,并且 i0 < 外部向量的长度,并且 i1 < 内部向量的长度。假设所有内部向量的大小相同。假设你想要一个 10x10 的向量,

使用 C++11:

std::vector<std::vector<char>> symbols(10, std::vector<char>(10));

现在您的向量被初始化为一个包含 10 个大小为 10 的向量的向量,此时您可以像方阵一样对其进行索引。

您可以使用插入方式,

symbols[i0].insert(symbols[i0].begin() + i1, 'a');

这样做是首先您检索基于 i0 的内部向量,从那里您可以从开始迭代器的特定偏移处执行插入。您只需确保索引不超过向量的长度。


推荐阅读