C++ 参考手册
- C++11
- C++14
- C++17
- C++20
- C++ 编译器支持情况表
- 独立与宿主实现
- C++ 语言
- C++ 关键词
- 预处理器
- C++ 标准库头文件
- 具名要求
- 功能特性测试 (C++20)
- 工具库
- 类型支持(基本类型、RTTI、类型特性)
- 概念库 (C++20)
- 错误处理
- 动态内存管理
- 日期和时间工具
- 字符串库
- 容器库
- std::array
- std::vector
- std::map
- std::map<Key,T,Compare,Allocator>::emplace
- std::map<Key,T,Compare,Allocator>::get_allocator
- std::map<Key,T,Compare,Allocator>::at
- std::map<Key,T,Compare,Allocator>::operator[]
- std::map<Key,T,Compare,Allocator>::begin, std::map<Key,T,Compare,Allocator>::cbegin
- std::map<Key,T,Compare,Allocator>::end, std::map<Key,T,Compare,Allocator>::cend
- std::map<Key,T,Compare,Allocator>::extract
- std::map<Key,T,Compare,Allocator>::merge
- std::map<Key,T,Compare,Allocator>::try_emplace
- std::map<Key,T,Compare,Allocator>::insert_or_assign
- std::map<Key,T,Compare,Allocator>::clear
- std::map<Key,T,Compare,Allocator>::map
- std::map<Key,T,Compare,Allocator>::~map
- std::map<Key,T,Compare,Allocator>::operator=
- std::map<Key,T,Compare,Allocator>::rbegin, std::map<Key,T,Compare,Allocator>::crbegin
- std::map<Key,T,Compare,Allocator>::rend, std::map<Key,T,Compare,Allocator>::crend
- std::map<Key,T,Compare,Allocator>::empty
- std::map<Key,T,Compare,Allocator>::size
- std::map<Key,T,Compare,Allocator>::max_size
- std::map<Key,T,Compare,Allocator>::insert
- std::map<Key,T,Compare,Allocator>::emplace_hint
- std::map<Key,T,Compare,Allocator>::erase
- std::map<Key,T,Compare,Allocator>::swap
- std::map<Key,T,Compare,Allocator>::count
- std::map<Key,T,Compare,Allocator>::find
- std::map<Key,T,Compare,Allocator>::contains
- std::map<Key,T,Compare,Allocator>::equal_range
- std::map<Key,T,Compare,Allocator>::lower_bound
- std::map<Key,T,Compare,Allocator>::upper_bound
- std::map<Key,T,Compare,Allocator>::key_comp
- std::map<Key,T,Compare,Allocator>::value_comp
- std::swap(std::map)
- std::erase_if (std::map)
- operator==,!=,<,<=,>,>=,<=>(std::map)
- std::map 的推导指引
- std::map<Key,T,Compare,Allocator>::value_compare
- std::unordered_map
- std::priority_queue
- std::span
- std::forward_list
- std::deque
- std::list
- std::set
- std::multiset
- std::multimap
- std::unordered_set
- std::unordered_multiset
- std::unordered_multimap
- std::stack
- std::queue
- std::vector<bool>
- 结点把柄 (C++17)
- 注释
- 迭代器库
- 范围库 (C++20)
- 算法库
- 数值库
- 输入/输出库
- 文件系统库
- 本地化库
- 正则表达式库
- 原子操作库
- 线程支持库
- 实验性 C++ 特性
- 有用的资源
- 索引
- std 符号索引
- 协程支持 (C++20)
- C++ 关键词
std::map<Key,T,Compare,Allocator>::find
iterator find( const Key& key ); |
(1) | |
const_iterator find( const Key& key ) const; |
(2) | |
template< class K > iterator find( const K& x ); |
(3) | (C++14 起) |
template< class K > const_iterator find( const K& x ) const; |
(4) | (C++14 起) |
1,2) 寻找键等于
key
的的元素。 3,4) 寻找键比较等价于值
x
的元素。此重载仅若若有限定 id Compare::is_transparent 合法并且指代类型才参与重载决议。允许调用此函数而无需构造 Key
的实例。参数
key | - | 要搜索的元素键值 |
x | - | 能通透地与键比较的任何类型值 |
返回值
指向键等于 key
的元素的迭代器。若找不到这种元素,则返回尾后(见 end() )迭代器。
复杂度
与容器大小成对数。
示例
运行此代码
#include <iostream> #include <map> struct FatKey { int x; int data[1000]; }; struct LightKey { int x; }; bool operator<(const FatKey& fk, const LightKey& lk) { return fk.x < lk.x; } bool operator<(const LightKey& lk, const FatKey& fk) { return lk.x < fk.x; } bool operator<(const FatKey& fk1, const FatKey& fk2) { return fk1.x < fk2.x; } int main() { // 简单比较演示 std::map<int,char> example = {{1,'a'},{2,'b'}}; auto search = example.find(2); if (search != example.end()) { std::cout << "Found " << search->first << " " << search->second << '\n'; } else { std::cout << "Not found\n"; } // 通透比较演示 std::map<FatKey, char, std::less<>> example2 = { { {1, {} },'a'}, { {2, {} },'b'} }; LightKey lk = {2}; auto search2 = example2.find(lk); if (search2 != example2.end()) { std::cout << "Found " << search2->first.x << " " << search2->second << '\n'; } else { std::cout << "Not found\n"; } }
输出:
Found 2 b Found 2 b
参阅
返回匹配特定键的元素数量 (公开成员函数) | |
返回匹配特定键的元素范围 (公开成员函数) |