c++ unordered_map容器函数说明

构造函数

  1. unordered_map():默认构造函数,创建一个空的 unordered_map 对象。
  2. unordered_map(size_type n):使用 n 个桶创建一个 unordered_map 对象。
  3. unordered_map(size_type n, const hasher& hf, const key_equal& eql):使用 n 个桶、自定义哈希函数 hf 和键比较函数 eql 创建一个 unordered_map 对象。
  4. unordered_map(size_type n, const hasher& hf, const key_equal& eql, const allocator_type& alloc):使用 n 个桶、自定义哈希函数 hf、键比较函数 eql 和分配器 alloc 创建一个 unordered_map 对象。
  5. unordered_map(const unordered_map& umap):复制构造函数,创建一个新的 unordered_map 对象,其元素与 umap 相同。
  6. unordered_map(const unordered_map& umap, const allocator_type& alloc):使用分配器 alloc 创建一个新的 unordered_map 对象,其元素与 umap 相同。
  7. unordered_map(unordered_map&& umap) noexcept:移动构造函数,创建一个新的 unordered_map 对象,其元素与 umap 相同,umap 变为空 unordered_map 对象。
  8. unordered_map(unordered_map&& umap, const allocator_type& alloc):使用分配器 alloc 创建一个新的 unordered_map 对象,其元素与 umap 相同,umap 变为空 unordered_map 对象。
  9. unordered_map(initializer_list<value_type> ilist):使用初始化列表 ilist 创建一个新的 unordered_map 对象。

迭代器

  1. begin():返回指向 unordered_map 第一个元素的迭代器。
  2. end():返回指向 unordered_map 最后一个元素之后的迭代器。
  3. cbegin() const:返回指向 unordered_map 第一个元素的 const 迭代器。
  4. cend() const:返回指向 unordered_map 最后一个元素之后的 const 迭代器。

容器大小相关

  1. empty():返回 unordered_map 是否为空。
  2. size():返回 unordered_map 中元素的数量。
  3. max_size():返回 unordered_map 可容纳的最大元素数量。

访问元素

  1. operator[] (const key_type& k):返回键为 k 的元素的引用,如果不存在则插入一个值为默认值的新元素。
  2. at(const key_type& k):返回键为 k 的元素的引用,如果不存在则抛出 std::out_of_range 异常。
  3. find(const key_type& k):返回指向键为 k 的元素的迭代器,如果不存在则返回 unordered_map::end()。
  4. count(const key_type& k):返回键为 k 的元素的数量,因为每个键最多只能对应一个元素,所以返回值只能为 0 或 1。

修改容器

  1. insert(const value_type& val):将 val 添加到 unordered_map 中。
  2. insert(const_iterator hint, const value_type& val)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
unordered_map 的 find() 函数用于在容器中查找指定的键,并返回一个指向该键值对的迭代器。如果找到了指定的键,则返回指向该键值对的迭代器;如果未找到,则返回指向 unordered_map 结尾的迭代器(即 end() 迭代器)。 下面是使用 find() 函数在 unordered_map 中查找键的示例代码: ```cpp #include <iostream> #include <unordered_map> int main() { std::unordered_map<std::string, int> myMap; myMap["apple"] = 1; myMap["banana"] = 2; myMap["orange"] = 3; // 使用 find() 函数查找键为 "banana" 的键值对 auto it = myMap.find("banana"); if (it != myMap.end()) { std::cout << "找到了键为 'banana' 的键值对,值为:" << it->second << std::endl; } else { std::cout << "未找到键为 'banana' 的键值对" << std::endl; } // 使用 find() 函数查找不存在的键 auto it2 = myMap.find("grape"); if (it2 != myMap.end()) { std::cout << "找到了键为 'grape' 的键值对,值为:" << it2->second << std::endl; } else { std::cout << "未找到键为 'grape' 的键值对" << std::endl; } return 0; } ``` 在上述示例代码中,我们创建了一个 unordered_map,并向其中插入了三对键值对。然后,我们使用 find() 函数分别查找键为 "banana" 和 "grape" 的键值对。通过判断迭代器是否等于 end() 迭代器,我们可以确定是否找到了指定的键。 注意,find() 函数的时间复杂度是 O(1),即常数时间复杂度。因为 unordered_map 使用哈希表实现,可以通过哈希函数快速定位键值对。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呆先森HIT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值