[英]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.