簡體   English   中英

C ++設置lower_bound()迭代器

[英]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文檔 ,在“返回值”下:

成員類型iteratorconst_iterator是指向元素的雙向迭代器類型。

因此您始終可以減少迭代器(當然,在begin檢查之后)。

遞減迭代器的復雜度將始終保持不變。 看到這個答案

std :: set :: lower_bound的返回類型是std::set::iteratorstd::set::const_iterator ,它們是std::set 成員類型 ,它們都是常量雙向迭代器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM