c++ - 在特定位置添加多维 vector 中的值

标签 c++ vector

我无法理解如何在特定位置的多维 vector 中添加新元素。 我的载体是

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

我有两个索引 i0 和 i1 以及一个 char 值。 我想在那个特定位置插入值,但是如果我尝试做类似的事情:

symbols[i0][i1] = value

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

最佳答案

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

使用 C++11:

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

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

您可以使用插入方式,

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

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

关于c++ - 在特定位置添加多维 vector 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59002147/

相关文章:

c++ - 尝试创建 shared_ptr 时 std::make_shared() 出错?

c++ - vector map 的实现

c++ - 使用 std::begin()、std::end() 将 ArrayXd 转换为 STL vector ,

c++ - 同一类中定义的两个结构可以相互访问吗?

c++ - 为什么允许我为包含常量指针的 vector 分配新地址?

c++ - std::multimap 真的只是嵌套 vector 吗

c++ - 无法访问成对 vector 中的值

c++ - vector 不从 cin 获取输入

c++ - 为什么我们应该为 C++ 应用程序构建 64 位目标?

c++ - 新手问题 : C/C++ with Eclipse