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::multimap
和 std::map
在您的编译器上的实现很可能使用相同的迭代器,或者意外兼容的东西。这不意味着这种行为是有保证的。它可能会在下一版本的编译器中发生变化,更不用说使用其他编译器了。
关于c++ - std map 和 multimap 迭代器是一样的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18972048/