map容器老犯的一些错误

1、

multimap<int, int> m;
    m.insert({ 1,2 });
    for (auto c : m)
        cout << c->first << c->second;//错误,c是pair类型,应该是cout << c.first << c.second;

2.

multimap<int, int> m;
    m.insert({ 1,2 });
    cout << m[1];//错误!!!!因为这是multimap,意味着里面可能有几个相同的元素,将multimap改成map即可
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
map容器和unordered_map容器的主要区别在于底层实现和性能特征。 1. 底层实现: - map容器是基于红黑树(一种平衡二叉搜索树)实现的有序映射容器。红黑树的特点是插入、删除和查找操作的时间复杂度都是O(log n),并且元素按照键的顺序进行排序。 - unordered_map容器是基于哈希表实现的无序映射容器。哈希表的特点是插入、删除和查找操作的平均时间复杂度是O(1),但是最坏情况下的时间复杂度是O(n)。 2. 性能特征: - map容器适用于需要有序访问元素的场景,例如需要按照键的顺序进行遍历或查找元素。 - unordered_map容器适用于不需要有序访问元素的场景,例如需要快速插入、删除和查找元素。 下面是一个示例演示map容器和unordered_map容器的使用: ```cpp #include <iostream> #include <map> #include <unordered_map> int main() { // 使用map容器 std::map<int, std::string> mapContainer; mapContainer[1] = "apple"; mapContainer[2] = "banana"; mapContainer[3] = "orange"; std::cout << "map容器中的元素:" << std::endl; for (const auto& pair : mapContainer) { std::cout << pair.first << ": " << pair.second << std::endl; } // 使用unordered_map容器 std::unordered_map<int, std::string> unorderedMapContainer; unorderedMapContainer[1] = "apple"; unorderedMapContainer[2] = "banana"; unorderedMapContainer[3] = "orange"; std::cout << "unordered_map容器中的元素:" << std::endl; for (const auto& pair : unorderedMapContainer) { std::cout << pair.first << ": " << pair.second << std::endl; } return 0; } ``` 输出结果: ``` map容器中的元素: 1: apple 2: banana 3: orange unordered_map容器中的元素: 2: banana 1: apple 3: orange ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值