假设我有一个std :: map类型,例如定义如下。
std::map<int, int>* someMap;
如果我没有使用指针,我可以使用索引运算符添加一个元素。但是在这种情况下,由于我有一个指针,以下是使用索引运算符插入的正确方法。
(*someMap)[someIndex] = someValue;
答案 0 :(得分:3)
是。 operator []
类已重载Map
。它必须直接与对象一起使用。
答案 1 :(得分:1)
确保指向 someMap
。否则,它只包含从堆栈中的垃圾派生的无意义地址。这是从堆中分配的示例:
std::map<int, int>* someMap = new std::map<int, int>();
一旦完成,是的,你对如何使用它是正确的:
(*someMap)[someIndex] = someValue;
并确保自己清理
delete someMap;
答案 2 :(得分:0)
是的,您的代码很好:
(*someMap)[someIndex] = someValue;