在 C++检查 std::vector是否为包含一定的值
是否有任何内置函数告诉我我的向量是否包含某个元素 例如
std::vector<string> v;
v.push_back("abc");
v.push_back("xyz");
if (v.contains("abc")) // I am looking for one such feature, is there any
// such function or i need to loop through whole vector?
Is there any built in function which tells me that my vector contains a certain element or not
e.g.
std::vector<string> v;
v.push_back("abc");
v.push_back("xyz");
if (v.contains("abc")) // I am looking for one such feature, is there any
// such function or i need to loop through whole vector?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
如果您的容器仅包含唯一值,请考虑使用
std::set
相反。它允许以对数复杂度查询集合成员资格。<前> <代码> #include <设置>
std::sets;
插入(“abc”);
插入(“xyz”);
if (s.find("abc") != s.end()) { ...
如果您的向量保持排序,请使用
std::binary_search
,它也提供对数复杂度。
如果所有其他方法都失败,请退回到
std::find
,这是一个简单的线性搜索。
If your container only contains unique values, consider using
std::set
instead. It allows querying of set membership with logarithmic complexity.If your vector is kept sorted, use
std::binary_search
, it offers logarithmic complexity as well.If all else fails, fall back to
std::find
, which is a simple linear search.在 C++11 中,您可以使用
std::any_of
代替。查找数组中是否有零的示例:
In C++11, you can use
std::any_of
instead.An example to find if there is any zero in the array:
它位于
中,名为std::find
。it's in
<algorithm>
and calledstd::find
.std::find()
。std::find()
.您可以使用
std::find
如下:为了能够使用
std::find
:include
。You can use
std::find
as follows:To be able to use
std::find
:include <algorithm>
.