STL中通過迭代器得知下標值

2021-10-03 23:30:05 字數 754 閱讀 4067

stl中要通過迭代器得知下標值,需要用到distance()函式。

distance() 函式用於計算兩個迭代器表示的範圍內包含元素的個數,其語法格式如下:

template

typename iterator_traits::difference_type distance (inputiterator first, inputiterator last);

其中,first 和 last 都為迭代器,其型別可以是輸入迭代器、前向迭代器、雙向迭代器以及隨機訪問迭代器;該函式會返回[first, last)範圍內包含的元素的個數。

注意,first 和 last 的迭代器型別,直接決定了 distance() 函式底層的實現機制:

另外,distance() 函式定義在標頭檔案,並位於 std 命名空間中。因此在使用此函式前,程式中應包含標頭檔案

測試用例1:

#includeusing namespace std;

struct s

};int main()

multiset::iterator it;

it=s.find(s1);

cout《測試用例2:

#includeusing namespace std;

struct s

};int main()

cout

STL中iterator迭代器

1 標頭檔案 所有容器有含有其各自的迭代器型別 iterator types 所以當你使用一般的容器迭代器時,並不需要含入專門的標頭檔案。不過有幾種特別的迭代器,例如逆向迭代器,被定義於中。2 迭代器型別 迭代器共分為五種,分別為 input iterator output iterator for...

STL中迭代器失效問題

對於vector deque等連續儲存的容器來說,插入元素 insert 或者刪除元素 erase 會導致後邊的迭代器都失效,解決方法是,erase iter 會返回下乙個有效迭代器的值,刪除元素時用將當前迭代器賦值為erase的返回值,系統會自動將迭代器的指向修改的。for iter cont.b...

STL中的迭代器分類

五類迭代器如下 1 輸入迭代器 唯讀,一次傳遞 為輸入迭代器預定義實現只有istream iterator和istreambuf iterator,用於從乙個輸入流istream中讀取。乙個輸入迭代器僅能對它所選擇的每個元素進行一次解析,它們只能向前移動。乙個專門的建構函式定義了超越末尾的值。總是,...