2012-11-28 75 views
0

說我有一個std :: map類型,例如定義如下。使用Index運算符插入一個指向std :: map的指針的元素

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

如果我不使用指針,我可以簡單地添加使用索引操作的元素。然而在這種情況下,因爲我有一個指針,下面是使用索引操作符插入的正確方法。

(*someMap)[someIndex] = someValue; 
+1

是的,這是正確的 – Andrey

回答

3

是的。 operator []Map類過載。它必須直接與對象一起使用。

0

是的,你的代碼是罰款:

(*someMap)[someIndex] = someValue; 
+0

爲什麼我不應該調用像'somemap - > [someIndex] = someValue'?爲什麼應該用限制指針的對象直接調用? –

1

確保您someMap的東西。否則,它只包含從堆棧中的垃圾派生的無意義地址。這裏有一個例子從堆中分配:

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

,一旦多數民衆贊成做,是的,你是如何使用它正確的:

(*someMap)[someIndex] = someValue; 

後自己

delete someMap; 
一定要清理
相關問題