不能访问指针-向量映射元素
Cant access to a pointer-vector map element,
进入我的私人部分,我有:
vector< vector<map<unsigned short int,col_data> > *> buffer_vectorS;
vector< map<unsigned short int,col_data> > * buffer_current;
map<unsigned short int,col_data> buffer_current_map;
(coldata是一个简单的结构:int, int, int, double)
之后我创建了一个映射数据的向量,并保存了它的指针
vector<map<unsigned short int,col_data> > * buffer_vector = new vector<map<unsigned short int,col_data> >;
buffer_vectorS.push_back(buffer_vector);
buffer_current = buffer_vector;
之后我想使用buffer_current的map元素来获取存储数据,
buffer_current_map = &buffer_current[index];
但是最后这个不能编译....我不知道该怎么写……我如何访问buffer_current的一个项目?你能帮我吗?
你的意思是:
buffer_current_map = (*buffer_vector)[index];
请注意,这将对映射执行复制操作。您可能希望使用指针语义访问映射:
map<unsigned short int,col_data> *buffer_current_map;
buffer_current_map = &(*buffer_vector)[index];
则不会复制。但是,如果在vector上进行了大小调整,则指针可能会失效。
相关文章:
- 如何从存储在std::映射中的std::集中删除元素
- 从嵌套在std::映射中的std::列表中删除元素的最佳方式
- 删除映射和分割错误中的一个过去结束元素
- 为什么在 std::map 上移动无法将元素从一个映射移动到另一个映射
- 访问映射向量的映射元素(c++)
- 为什么 unordered_map::equal_range upper_bound 如果键小于第一个映射元素,则返回
- 根据类成员对同一密钥的多映射元素进行排序
- C++查找并擦除多映射元素
- C++ for_each循环找不到指向映射元素
- 创建映射元素时,请避免使用值副本
- 从常量迭代器到映射向量,获取映射向量中映射元素的键和值
- c++中如何更改映射元素的值
- 传递对映射元素的引用作为参数
- 如果没有找到映射元素将返回什么
- 不能访问指针-向量映射元素
- 存储内部排序映射元素的最快方式
- 无序多映射元素插入
- 哈希映射元素的值未正确打印
- 修改所有映射元素的键
- 复制映射元素的正确方法