std::map::find
STD::地图::找到
iterator find( const Key& key | (1) | |
---|---|---|
const_iterator find( const Key& key ) const; | (2) | |
template< class K > iterator find( const K& x | (3) | (since C++14) |
template< class K > const_iterator find( const K& x ) const; | (4) | (since C++14) |
1,2%29找到一个密钥相当于key
...
3,4%29找到一个键比较的元素等价物
价值x
。此重载仅在下列情况下才参与重载解析:Compare::is_transparent
是有效的,并表示类型。它允许调用此函数,而无需构造Key
参数
key | - | key value of the element to search for |
---|---|---|
x | - | a value of any type that can be transparently compared with a key |
返回值
元素的迭代器,该元素的密钥等价于key
如果没有找到这样的元素,请参阅end()
返回%29迭代器。
复杂性
容器大小的对数。
例
二次
#include <iostream>
#include <map>
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";
}
}
二次
产出:
二次
Found 2 b
二次
另见
count | returns the number of elements matching specific key (public member function) |
---|---|
equal_range | returns range of elements matching a specific key (public member function) |
例
演示通过运算符访问不存在元素的风险。[]。
二次
#include <string>
#include <iostream>
#include <map>
int main()
{
std::map<std::string,int> my_map;
my_map["x"] = 11;
my_map["y"] = 23;
auto it = my_map.find("x"
if (it != my_map.end()) std::cout << "x: " << it->second << "\n";
it = my_map.find("z"
if (it != my_map.end()) std::cout << "z1: " << it->second << "\n";
// Accessing a non-existing element creates it
if (my_map["z"] == 42) std::cout << "Oha!\n";
it = my_map.find("z"
if (it != my_map.end()) std::cout << "z2: " << it->second << "\n";
}
二次
产出:
二次
x: 11
z2: 0
二次
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。