0

假设我有一个 std::map 类型,例如定义如下。

std::map<int, int>* someMap;

如果我不使用指针,我可以简单地使用索引运算符添加一个元素。但是在这种情况下,由于我有一个指针,以下是使用索引运算符插入的正确方法。

(*someMap)[someIndex] = someValue;
4

3 回答 3

3

是的。为类operator []重载Map。它必须直接与对象一起使用。

于 2012-11-28T15:52:22.053 回答
1

确保你指向 someMap某物。否则,它只包含一个从堆栈上的垃圾派生的无意义地址。这是从堆中分配的示例:

  std::map<int, int>* someMap = new std::map<int, int>();

完成后,是的,您的使用方法是正确的:

  (*someMap)[someIndex] = someValue;

并确保自己清理

  delete someMap;
于 2012-11-28T15:50:56.047 回答
0

是的,您的代码很好:

(*someMap)[someIndex] = someValue;
于 2012-11-28T15:50:32.163 回答