如何从指针访问C ++映射的元素?

时间:2009-08-06 00:59:46

标签: c++

简单的问题,但很难为搜索引擎制定:如果我创建一个指向地图对象的指针,我如何访问和设置其元素?以下代码不起作用。

map<string, int> *myFruit;
myFruit["apple"] = 1;
myFruit["pear"] = 2;

3 个答案:

答案 0 :(得分:65)

你可以这样做:

(*myFruit)["apple"] = 1;

myFruit->operator[]("apple") = 1;

map<string, int> &tFruit = *myFruit;
tFruit["apple"] = 1;

答案 1 :(得分:6)

myFruit是指向地图的指针。如果你删除星号,那么你将有一张地图,你的语法将起作用。

或者,您可以使用解除引用操作符(*)使用指针访问地图,但您必须先创建地图:

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

答案 2 :(得分:2)

map<string, int> *myFruit;
(*myFruit)["apple"] = 1;
(*myFruit)["pear"] = 2;
如果你需要把它作为指针,

会起作用。