C++ unordered_multimap用法总结

std::unordered_multimap 是 C++ 标准模板库中的一种无序关联容器,它允许存储相同键的多个副本,并提供高效的插入、查找和删除操作。以下是 std::unordered_multimap 的用法总结:

包含头文件:

#include <unordered_map>

创建 std::unordered_multimap 对象:

std::unordered_multimap<KeyType, ValueType> myUnorderedMultimap;
  • KeyType 是映射中键的类型。
  • ValueType 是映射中值的类型。

插入键值对:

myUnorderedMultimap.insert(std::make_pair(key, value));

删除键值对:

myUnorderedMultimap.erase(key);

遍历 std::unordered_multimap

for (const auto& pair : myUnorderedMultimap) {
    // pair.first 是键
    // pair.second 是值
}

查找元素:

auto range = myUnorderedMultimap.equal_range(key);

for (auto it = range.first; it != range.second; ++it) {
    // 处理每个匹配的键值对
}

获取 std::unordered_multimap 的大小:

size_t size = myUnorderedMultimap.size();

注意事项:

  1. std::unordered_multimap 是无序的,插入的元素的顺序不一定与插入的顺序相同。
  2. 允许存储相同的键,即允许重复键。

示例:

#include <iostream>
#include <unordered_map>

int main() {
    std::unordered_multimap<std::string, int> myUnorderedMultimap;

    // 插入键值对
    myUnorderedMultimap.insert(std::make_pair("apple", 10));
    myUnorderedMultimap.insert(std::make_pair("orange", 20));
    myUnorderedMultimap.insert(std::make_pair("apple", 30));

    // 遍历 unordered_multimap
    for (const auto& pair : myUnorderedMultimap) {
        std::cout << "Key: " << pair.first << ", Value: " << pair.second << std::endl;
    }

    // 查找元素
    auto range = myUnorderedMultimap.equal_range("apple");
    for (auto it = range.first; it != range.second; ++it) {
        std::cout << "Found matching pair - Key: " << it->first << ", Value: " << it->second << std::endl;
    }

    // 获取 unordered_multimap 的大小
    size_t size = myUnorderedMultimap.size();
    std::cout << "Size of unordered_multimap: " << size << std::endl;

    return 0;
}
  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值