說我有一個std :: map類型,例如定義如下。使用Index運算符插入一個指向std :: map的指針的元素
std::map<int, int>* someMap;
如果我不使用指針,我可以簡單地添加使用索引操作的元素。然而在這種情況下,因爲我有一個指針,下面是使用索引操作符插入的正確方法。
(*someMap)[someIndex] = someValue;
說我有一個std :: map類型,例如定義如下。使用Index運算符插入一個指向std :: map的指針的元素
std::map<int, int>* someMap;
如果我不使用指針,我可以簡單地添加使用索引操作的元素。然而在這種情況下,因爲我有一個指針,下面是使用索引操作符插入的正確方法。
(*someMap)[someIndex] = someValue;
是的。 operator []
對Map
類過載。它必須直接與對象一起使用。
是的,你的代碼是罰款:
(*someMap)[someIndex] = someValue;
爲什麼我不應該調用像'somemap - > [someIndex] = someValue'?爲什麼應該用限制指針的對象直接調用? –
確保您點someMap
的東西。否則,它只包含從堆棧中的垃圾派生的無意義地址。這裏有一個例子從堆中分配:
std::map<int, int>* someMap = new std::map<int, int>();
,一旦多數民衆贊成做,是的,你是如何使用它正確的:
(*someMap)[someIndex] = someValue;
後自己
delete someMap;
一定要清理
是的,這是正確的 – Andrey