【问题标题】:Cant access to a pointer-vector map element,无法访问指针矢量地图元素,
【发布时间】:2011-10-27 06:50:03
【问题描述】:

进入我的私人部分:

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 的一项? 你能帮帮我吗?

【问题讨论】:

  • 为什么需要引用运算符(&amp;)?

标签: c++ pointers map vector


【解决方案1】:

你的意思是:

buffer_current_map = (*buffer_vector)[index];

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-16
    • 2013-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多