本文將給大家帶來分享:vector中訪問元素和迭代器失效問題,這兩部分是在日常工作開發中經常遇到,也是容易犯錯的地方,同時也是在面試過程中經常被問到的。
1.訪問vector容器中單個元素
首先,vector 容器可以向普通數組那樣訪問存儲的元素,甚至對指定下標處的元素進行修改,比如:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> values{1,2,3,4,5};
//獲取容器中首個元素
cout << values[0] << endl;
//修改容器中下標為 0 的元素的值
values[0] = values[1] + values[2] + values[3] + values[4];
cout << values[0] << endl;
return 0;
}
運行結果為:
1
14
顯然,vector 的索引從 0 開始,這和普通數組一樣。通過使用索引,總是可以訪問到 vector 容器中現有的元素。
值得一提的是,容器名[n]這種獲取元素的方式,需要確保下標 n 的值不會超過容器的容量(可以通過 capacity() 成員函數獲取),否則會發生越界訪問的錯誤。幸運的是,和 array 容器一樣&