无法访问指针矢量地图元素,

时间:2011-10-27 06:50:04

标签: c++ pointers map vector

进入我的私人部分我有:

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项? 你能救我吗?

1 个答案:

答案 0 :(得分:1)

你的意思是:

buffer_current_map = (*buffer_vector)[index];

但请注意,这将在地图上执行复制操作。您可能希望使用指针语义访问地图:

map<unsigned short int,col_data> *buffer_current_map;
buffer_current_map = &(*buffer_vector)[index];

然后不会复制。但是,如果对向量进行了大小调整,则指针可能无效。