我有點困惑這裏有一個地圖名稱myMap是一個地圖裏面的地圖 明顯在價值方面,而第二個地圖是 非常正常的地圖的int與字符。 沒有在一種情況下(這是我的地圖)它允許 重複鍵(異常行爲),而在另一種情況下它不允許。在C++中映射內部地圖。很混亂?
#include <iostream>
#include <map>
using namespace std;
int main(void)
{
map<int, map<int,char> > myMap; // map inside map
map<int, char> ourMap; // normal map
myMap[1][1] = 'A';
myMap[1][2] = 'B'; // should overwrite previous value
myMap[2][1] = 'C';
myMap[2][2] = 'D'; // should overwrite previous value
ourMap[1] = 'A';
ourMap[1] = 'B';
cout << "[1][1] = " << myMap[1][1] << endl;
cout << "[1][2] = " << myMap[1][2] << endl;
cout << "[2][1] = " << myMap[2][1] << endl;
cout << "[2][2] = " << myMap[2][2] << endl;
cout << "ourMap[1] = " << ourMap[1] << endl;
return 0;
}
// And here is the output . By the way I was anticipating , [1][2] = B , [2][2] = D & ourMap[1] = B . But something else comes out .
OUTPUT :
[1][1] = A
[1][2] = B
[2][1] = C
[2][2] = D
ourMap[1] = B
是,如果我們已經繪製地圖裏面在做C++他們開始從他們的正常行爲是不能有重複鍵 我無法弄清楚它是如何如此偏離。誰能告訴我這是怎麼回事?非常抱歉,如果這個問題聽起來很有趣?
My Question is for myMap
myMap[x][y] = something
u can have only distinct value of x ?
For normal map it is like that only .
放心,沒有關鍵重複或異常行爲 – juanchopanza
「myMap [1] [2] ='B'; //應該覆蓋以前的值」 - 爲什麼? –
你爲什麼期望'myMap [1] [2] ='B''應該覆蓋'myMap [1] [1] ='A''? –