在 C++ <algorithm>中查找函数
find function in c++ <algorithm>
我在 Ubuntu 18.04.2 LTS 上使用 g++ 7.4.0
我想我发现了一个错误:
vector<int> a(10,1);
vector<int>::iterator it = find(a.begin()+6,a.begin()+3,8);
if(it != a.end()) cout<<"FOUND"<<endl;
结果:
FOUND
应该找不到吗?我还发现:
it = a.begin()+3
不,这不是错误。 它完全遵循标准定义:
来自 [alg.find]
设 E 为:
—*i == value
forfind
,
...返回:
i
Etrue
的 [first
,last
( 范围内的第一个迭代器。如果未找到此类迭代器,则返回last
。
由于在 [a.begin()+6
, a.begin()+3
( 范围内没有迭代器i
,*i == 8
成立,因此std::find
返回a.begin()+3
。
相关文章:
- 递归ASMVisitor 和查找函数调用站点
- C++ - 查找函数无法在子字符串上执行
- 查找函数是否为常量
- GDB 如何查找函数退出的位置
- 查找函数在unordered_map中的工作方式是搜索键值
- 在 C++ <algorithm>中查找函数
- 错误:二进制表达式的操作数无效(映射使用查找函数错误)
- 哪个查找规则阻止编译器查找函数
- 在C++中查找函数的调用方(Visual Studio)
- 关于获取行和字符串查找函数的问题
- 查找函数在失败结果中应该返回什么
- 如何使用调用和别名指令在 llvm 字节码中查找函数名称
- std::字符串类查找函数不返回预期结果.我可能用错了
- 在成对向量中查找函数时出错
- 从堆栈指针中查找函数参数值
- 如何定义查找函数
- 如何查找函数是否可重入
- 在c++中查找函数
- GNU g++ 4.9.2 查找函数调用的编译错误
- 使用GDB查找函数对应的内存地址/调试