Dan*_*iel 3 c++ stl unordered-set
假设我有一个unordered_set<int> S
,我想检查它是否包含某个int x
.
有我的方式来写类似if(S.contains(x)){ /* code */ }
的作品一样if(S.find(x) != S.end()){ /* code */ }
?
它可以是一个宏或任何东西,但我发现编写这样一个简单的查找方法很丑陋且不必要地冗长。
而不是使用std::unordered_set
的find()
成员函数来确定给定的键x
是否存在,如下所示:
if (S.find(x) != S.end()) { /* code */ }
Run Code Online (Sandbox Code Playgroud)
您可以简单地使用count()
成员函数:
if (S.count(x)) { /* code */ }
Run Code Online (Sandbox Code Playgroud)
Anstd::unordered_set
不允许重复,因此count()
将返回0
或1
。
该unordered_set::count()
成员函数不应该比低效率的unordered_set::find()
,因为以找出请求密钥的计数元素的遍历作为一个被发现的,因为不能有重复可以尽快停止。
归档时间: |
|
查看次数: |
3508 次 |
最近记录: |