STL vector(向量) C++
標頭檔案 #include<vector>
定義:vector<變數型別> 變數名;//此處的變數型別可以為任意型別
例:vector<變數型別> s;
vector類稱作向量類,實現了動態陣列,使用者無需預先開闢陣列空間;元素下標同陣列相同,不同的是在對其進行操作時,其大小會動態改變。
向量的訪問方式與陣列的訪問方式一致,也可以使用下標進行訪問,也可以使用其at(num)訪問num位置的元素
常用方法:
特定位置元素進行索引查詢:s.at(indec); // 越界會丟擲異常,用陣列下標訪問不會丟擲異常
清除向量中所有的元素:s.clear(); // clear()
刪除向量中最後一個元素:s.pop_back(); // pop_back()
判斷向量是否為空:s.empty(); // empty()
向量的大小:s.size(); // size()
尾部插入元素:s.push_back(); // push_back()
返回向量首部第一個元素:s.front(); // front()
刪除某個特定元素:s.erase(s.begin()+num);//刪除第num+1個元素
在某個位置插入一個元素:s.insert(s.begin()+num,a);//在第num+1位置插入元素a
兩個(正向)迭代器:begin()和end(); //begin()指向向量的第一個元素、end()指向向量的最後一個元素的下一個位置 。
兩個(反向)迭代器:rbegin()和rend()://rbegin()指向向量的最後一個元素、rend()指向第一個元素之前的位置。
遍歷整個向量(迭代器方式)
vector<變數型別>:: iterator 迭代器名; // 例 vector<變數型別>:: iterator it;
for(it=s.begin();it!=s.end();it++){ cout<<*it<<endl; }
實現隨機訪問O(1)效率較高;對插入和刪除操作時間複雜度較高