检查向量中的一组值
checking for a set of values in a vector
我有一组数字:
{2, 6, 8}
我想检查这些数字中的任何一个是否在我的向量中:
std::vector<int> myVector;
我知道我可以使用算法的 std::find 单独检查每个:
auto iter1 = std::find(myVector.begin(), myVector.end(), 2);
auto iter2 = std::find(myVector.begin(), myVector.end(), 6);
auto iter3 = std::find(myVector.begin(), myVector.end(), 8);
if(iter1 != myVector.end() || iter2 != myVector.end() || iter3 != myVector.end())
std::cout << "A desired value was found in the vector!"
在这个例子中,只有三个数字,但真正的数字集会更大。另外,这似乎有点乏味。有没有更好的解决方案?
您可以使用
std::find_first_of
:
std::vector<int> myVector = /* something */;
std::vector<int> values = {2, 6, 8};
auto first_found = std::find_first_of(std::begin(myVector), std::end(myVector),
std::begin(values), std::end(values));
if (first_found != std::end(myVector)) {
// Found one of them!
}
如果要
检查"集合"中是否包含数字,请使用std::set
std::set<int> myset = {3,4,6,34,2,6,78,8,5,0};
if (myset.count(5) > 0) {
std::cout << "Hooray!" << std::endl;
}
相关文章:
- 在 c++ 中拥有一组结构的正确方法是什么?
- 有哪些有效的方法可以消除一组 100 万个字符串>重复数据?
- 程序以使用 C++ 中的 while 循环查找一组数字的最小值
- 一组值的零开销下标运算符
- 我正在寻找一种优雅的方式来从元组向量创建tuple_element向量
- 使用一组结构,避免在一组结构中出现重复的结构
- 将数组/向量发送到 c++ 脚本的 cython 示例
- CMake:我们可以为一组不形成可执行文件或库的特定文件指定包含目录吗?
- Push_back一组(异构)向量的实现
- 创建一组向量
- 从向量<T>创建一组字符串
- 检查向量中的一组值
- C :通过一组向量的向量进行迭代
- STL向量和地图在删除一组记录时应该更喜欢
- C++:为什么创建的向量没有传递到下一组 for 循环
- 将一组字符串分配给向量c++的内容
- C++是否有任何方法可以将一组派生类存储在基类的一个向量中,并仍然访问它们的成员
- 如何在 C++ 中从一组向量中删除重复的向量
- 实例化一个二维向量,其中一组对作为单元值
- 如何保持一组没有重复的向量