我希望通过将std::map<string,void*>
对中的指针按所需顺序推送到map
来为vector<pair<string,void*>*>
中的对存储不同的顺序。如何获取map
中每对的指针?
答案 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是每个对的迭代器(就像指针一样),从第一个开始。