不能访问指针-向量映射元素

Cant access to a pointer-vector map element,

本文关键字:映射 元素 向量 访问 指针 不能      更新时间:2023-10-16

进入我的私人部分,我有:

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上进行了大小调整,则指针可能会失效。