c++ - 在特定位置添加多维向量中的值
问题描述
我不明白如何在特定位置的多维向量中添加新元素。我的载体是
std::vector<std::vector<char>> symbols
我有两个索引 i0 和 i1 以及一个 char 值。我想在该特定位置插入值,但是如果我尝试执行以下操作:
symbols[i0][i1] = value
如何使用插入方法?我的向量必须是动态的。当我在特定位置插入一个值时,它的尺寸必须改变。
解决方案
为了让您索引到您的多维向量,您必须已经完全初始化它,并且 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 的内部向量,从那里您可以从开始迭代器的特定偏移处执行插入。您只需确保索引不超过向量的长度。
推荐阅读
- python - 从 numpy 数组在 PyQt5 中显示图像
- python - 如何修复 sklearn for python 安装失败
- android-studio - 在 Google Play 商店中上传 Ionic 项目的错误
- python - 尝试创建 Twitter 情绪分析,我收到此错误 AttributeError: 'str' object has no attribute 'csv'
- python - 在 Pandas 列中过滤列表中的项目
- r - 使用R中的函数从服务器下载数据时利用for循环?
- go - 使用反射的接口的指针接收器更新函数中结构的字段
- java - 我应该在 android studio 中为类似的回收器视图编写多个适配器吗?
- regex - 用于零件号查找的正则表达式
- outlook - 如何提取文件夹中多个 MSG 文件中的 PDF 文件?