进入我的私人部分我有:
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项? 你能救我吗?
答案 0 :(得分:1)
你的意思是:
buffer_current_map = (*buffer_vector)[index];
但请注意,这将在地图上执行复制操作。您可能希望使用指针语义访问地图:
map<unsigned short int,col_data> *buffer_current_map;
buffer_current_map = &(*buffer_vector)[index];
然后不会复制。但是,如果对向量进行了大小调整,则指针可能无效。