c++ - std map 和 multimap 迭代器是一样的吗?

标签 c++ dictionary iterator multimap

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::multimapstd::map 在您的编译器上的实现很可能使用相同的迭代器,或者意外兼容的东西。这意味着这种行为是有保证的。它可能会在下一版本的编译器中发生变化,更不用说使用其他编译器了。

关于c++ - std map 和 multimap 迭代器是一样的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18972048/

相关文章:

c++ - 通过外部评估调度将标准兼容性与不透明数据连接起来

c++ - Raspberry Pi 零 W 上的 OpenCV - 浮点异常

c++ - std::swap between std::shared_ptr<A> 其中 A 具有动态数组

java - 我可以计算计算机中的图像被查看了多少次并将计数数存储在java文件或cpp文件中?

java - 如何使用 Gson 将 JSON 转换为 HashMap?

c# - 如何在 C# 中遍历类的实例?

c++ - Xcode 不与共享库共享静态变量

java - 在Java中,为什么map.get(key)[0]作为左侧有效,而map.get(key)则无效?

dictionary - 如何通过索引访问字典键?

c++ - 为我的链表实现一个迭代器类。 using关键字是什么?