我可以打电话给<algorithm>空旷的设施吗?
May I call <algorithm> facilities on empty ranges?
我的意思是,写这样的东西有效吗:
std::vector<int> vec(100, 0);
auto it = std::find(vec.end(), vec.end(), 5);
it
保证是vec.end()
还是某种 UB?
这将节省我一些案例检查是否允许此结构。
一对迭代器(如 vec.end(), vec.end()
(是一个空范围,但它仍然是一个有效的范围。可以在空范围内调用函数。为算法函数提供有效范围不会调用未定义的行为。如可能的实现中所述,std::find
函数将简单地跳过这一部分:
for (; first != last; ++first) {
if (!q(*first)) {
return first;
}
}
并返回last
迭代器:
return last;
相关文章:
- CMake 用于设定C++标准的设施 "at least C++NN"
- C++ <algorithm> 使用对象作为比较定义的 sort()
- TicTacToe with MiniMax algorithm 4x4
- 为什么 std::erase(std::erase_if) 不是适用于<algorithm>任何容器的模板?
- is_permutation方法从 #include<algorithm> 显示错误的输出
- 设置::查找和查找之间的性能差异<algorithm>
- 添加调试设施以提升变体访问者
- Stringholics algorithm
- Next_Permutation algorithm
- 将标准引入标准::web_view设施有什么好处?
- 我不使用<algorithm>标题,但 sort() 可用
- std::max在包含<algorithm>后无法解析
- <algorithm> 定义宏 X 吗?
- 在 C++ <algorithm>中查找函数
- 我可以打电话给<algorithm>空旷的设施吗?
- 分配但不使用分配器的标准图书馆设施
- 使用不带 or 循环的递归反转字符串<algorithm>
- 使用排序自<algorithm>对对象进行排序
- "bubble sort algorithm"小错误
- C++是否有强有力的保证交换设施