如何从向量的一部分中正确找到值
How do I correctly find a value from part of a vector?
我期待下面的代码应该只打印出"找到 2",但它打印出两者。第二个不应该发生,因为 4 不在向量的前 3 个元素中。我哪里犯了错误?
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<int> a = {1,2,3,4,5};
if(find(a.begin(),a.begin()+3,2) != a.end()) cout << "2 found" << endl;
if(find(a.begin(),a.begin()+3,4) != a.end()) cout << "4 found" << endl;
}
结果:
2 found
4 found
如果未找到值,find
返回您传递给它的结束/"最后一个"值,在本例中不是a.end()
。代码应该比较一个... != a.begin() + 3...
。
将find(a.begin(),a.begin()+3,2) != a.end()
更改为find(a.begin(),a.begin()+3,2) != a.begin()+3
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<int> a = {1,2,3,4,5};
if(find(a.begin(),a.begin()+3,2) != a.begin()+3) cout << "2 found" << endl;
if(find(a.begin(),a.begin()+3,4) != a.begin()+3) cout << "4 found" << endl;
}
相关文章:
- 写入向量<向量<bool>>
- 函数向量_指针有不同的原型,我可以构建一个吗
- std::向量与传递值的动态数组
- 将值指定给向量(2D)的向量中的某个位置
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 如何使用向量的template_back函数
- std::sort()函数无法对向量的一部分进行排序
- C++向量的哪一部分在传递给函数时被复制
- 如何拆分 QString 并将一部分字符串保存在浮点数的向量中
- C++的新手,程序在取消引用向量的一部分时没有响应
- 如何在 c++ 中将一个向量的一部分复制到另一个向量
- 如何从向量的一部分中正确找到值
- 在 c++ 中搜索向量的一部分
- 将向量的一部分传递给 C++ 中的函数
- 如何在不复制的情况下将只读向量传递给作为<int> pair<int,int>向量一部分的函数
- 引用从end()中减去的std::向量的一部分可以吗
- 创建一个求和函数,只对向量的一部分求和
- 如何正确打印无符号字符向量的一部分
- 如何擦除向量的一部分
- 求向量int的一部分的和