我有点困惑这里有一个地图名称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''? –