std::multimap<int, int> my_map;
for(int i=0; i<10; ++i)
{
my_map.insert(std::pair<int, int>(i, i));
my_map.insert(std::pair<int, int>(i, i));
}
std::multimap<int, int>::iterator it(my_map.begin());
std::multimap<int, int>::iterator end(my_map.end());
for(; it!=end; ++it)
{
cout << it->first << " " << it->second << endl;
}
std::map<int, int>::iterator it(my_map.begin());
std::map<int, int>::iterator end(my_map.end());
for(; it!=end; ++it)
{
cout << it->first << " " << it->second << endl;
}
爲什麼兩個循環遍歷my_map
產生相同的結果? std :: multimap :: iterator和std :: map :: iterator之間沒有區別嗎?std map和multimap迭代器是一樣的嗎?
您的代碼有一個錯誤(迭代器類型和容器類型不匹配)。修復這個錯誤,這個謎將消失。理解錯誤代碼的行爲是非常非常困難的。 –
@DavidSchwartz代碼編譯並運行良好。我想知道爲什麼它。 – Joshua
它有一個錯誤。它不會像你期望的那樣行事。這就是錯誤的本質。修復這個錯誤,這個謎將消失。這就是爲什麼程序員盡力*避免*錯誤。 –