简单的问题,但很难为搜索引擎制定:如果我创建一个指向地图对象的指针,我如何访问和设置其元素?以下代码不起作用。
map<string, int> *myFruit;
myFruit["apple"] = 1;
myFruit["pear"] = 2;
答案 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;
如果你需要把它作为指针,会起作用。