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