使用Index运算符将指针插入std :: map

时间:2012-11-28 15:47:50

标签: c++ data-structures std

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

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

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

(*someMap)[someIndex] = someValue;

3 个答案:

答案 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;