map容器 嵌套 输出 问题
代码如下;
int main()
{
map<string, string> m1;
map<int, map<string, string>> m;
string nameseed = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
string A, B;
for (int i = 0; i < 10; i++)
{
A = nameseed[i];
B = nameseed[i + 1];
m1.insert(make_pair(A,B));
m.insert(make_pair(i, m1));
}
for (map<int, map<string, string>>::iterator it = m.begin(); it != m.end(); it++)
{
cout << it->first << " : ";
for (map<string, string>::iterator mit = it->second.begin(); mit != it->second.end(); mit++)
cout << mit->first << " " << mit->second ;
cout << endl;
}
return 0;
}
本意输出格式是:
1:A B
2: C D
3: E F
可实际输出的却不是,怎么解决呢?
显然的,第一个for循环 第一次 从0开始。插入A,B
for循环 第二次 从1开始。插入B,C
把m1定义放在这个位置,或者在这里先清空