我无法理解如何在特定位置的多维 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/