C ++ - 访问地图参考

时间:2011-10-24 17:56:16

标签: c++ pointers stl map reference

对不起。关于参考地图访问的一个简单问题

如果我有:

map<int,string> *items= new map<int,string>();

我这样做?

string x = &items[100];

2 个答案:

答案 0 :(得分:2)

所以,首先我问;为什么要动态分配你的地图?它首先打败了使用它的目的。地图将在内部使用动态分配它的项目,但地图本身很便宜,你失去了通过范围确定性地管理其内存的能力。所以,你的代码变成了:

map<int,string> my_map;
my_map[100] = "some string";
string x = items[100];

否则你需要先取消引用地图指针。

string x = (*my_map)[100];

真的,但是......不要这样做。

答案 1 :(得分:1)

如果你必须:

map<int,string> *items= new map<int,string>();

你这样做:

string x = (*items)[100];

如果你可以改为:

map<int,string> items;

你会这样做:

string x = items[100];