[英]C++ set lower_bound() iterator
我想在C ++中的std :: set中找到最大的元素,严格小于给定的元素。 一些问题建议找到下限迭代器并将其递减,即
set<int> st;
// Add elements
int x;
// calculate x
auto it = st.lower_bound(x);
if(it != st.begin()) {
it--;
}
关于Lower_bound返回哪种迭代器(例如Forward,Bidirectional)的文档尚不清楚,那么我们如何知道递减此迭代器是有效的? 我们还可以估计递减std :: set迭代器的复杂性吗?
根据cplusplus.com上set::lower_bound
的文档 ,在“返回值”下:
成员类型
iterator
和const_iterator
是指向元素的双向迭代器类型。
因此您始终可以减少迭代器(当然,在begin
检查之后)。
递减迭代器的复杂度将始终保持不变。 看到这个答案 。
std :: set :: lower_bound的返回类型是std::set::iterator
或std::set::const_iterator
,它们是std::set
成员类型 ,它们都是常量双向迭代器 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.