錯誤觀點:通過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陣列的後面當作頭。於是。如果頭指標要...