如何利用迭代器獲取vector的最後乙個元素

2021-09-06 06:56:46 字數 463 閱讀 6631

錯誤觀點:通過vector::end()能獲取指向最後乙個元素的指標。

實際上,通過上面的方法獲取的是指向末尾元素再下乙個位置的指標。

例子:

#include #include using namespace std;

int main()

程式輸出的不是5,而是131159。表明通過int.end()並不能獲取指向容器int中尾元素的指標。

那麼如何操作才正確?實驗證明,

令迭代器it = int.end() - 1即可。

程式:

#include #include using namespace std;

int main()

輸出5

注意的是,這裡的「-1」,實際上是-sizeof(int)

Vector 迭代器 陣列

標準庫型別vector表示物件的集合,其中所有的物件型別都相同 集合中每個物件都有乙個與之對應的索引,索引用於訪問物件。vector是乙個類模板,是模板而非型別。1.初始化vector物件 vectorv1 t型別空vector,執行預設初始化 vectorv2 v1 v2包含所有v1元素的副本 v...

vector迭代器失效

c 面試題經常會背問到vector和list的區別,其中就有乙個問題就困擾我們的,面試官說vector在進行插入和刪除元素的時候迭代器會失效,list不會,那這邊由我來給大家舉個列子 include include using namespace std int main include inclu...

vector逆向迭代器

include using namespace std include include intmain cout v1 endl vector int v1 簡單理解v.begin 與v.rbegin 的區別 乙個將vector陣列的前面當作頭,乙個將vector陣列的後面當作頭。於是。如果頭指標要...