如何在std :: map中获取指向一对的指针

时间:2015-10-19 04:44:05

标签: c++ dictionary stl

我希望通过将std::map<string,void*>对中的指针按所需顺序推送到map来为vector<pair<string,void*>*>中的对存储不同的顺序。如何获取map中每对的指针?

3 个答案:

答案 0 :(得分:1)

如果取消引用地图的迭代器,则会获得对该对的引用。取这个地址会给你一个指向该对的指针。

auto it = map.begin();
auto ptr = &*it;

在声明对时要小心,因为第一个元素是const:pair<const string, void *>。或者使用std::map<string,void*>::value_type代替配对。

答案 1 :(得分:0)

使用元素的地址迭代地图:

for (auto& my_pair : my_map)
    my_vector.push_back(&my_pair);

答案 2 :(得分:0)

std::map<string,void*> mymap;
std::map<string,void*>::iterator mapIter = mymap.begin();

mapIter是每个对的迭代器(就像指针一样),从第一个开始。