標題:
STL 容器1_Vector
[打印本頁]
作者:
鄭繼威
時間:
2024-6-26 18:54
標題:
STL 容器1_Vector
本帖最後由 鄭繼威 於 2024-7-8 16:34 編輯
STL 是 C++ 提供的一套標準模板函式庫,全名是 Standard Template Library,因為是用 Template 實作的,所以裡面什麼都可以裝。
Vector 可以看成是一個
動態陣列
,用法跟陣列很像,基本功能有 :
push_back: 把一個值加到尾巴
pop_back: 把尾巴的值移除掉
erase: 移除指定位置元素
insert: 新增指定位置元素
[]: 得到某一個位置的值
size: 得到目前長度
back: 得到尾巴的值
front: 得到頭的值
[attach]18895[/attach]
ex1:
#include <vector>
using namespace std;
int main(){
vector<int> vec; // 宣告一個裝 int 的 vector
// 現在 vec 是空的
vec.push_back(10);
vec.push_back(20); // 經過三次 push_back
vec.push_back(30); // vec 是 [10, 20, 30]
int length = vec.size(); // length = 3
for(int i=0 ; i<length ; i++){
cout << vec[i] << endl; // 輸出 10, 20, 30
}
}
複製代碼
ex2:
int main(){
vector<int> vec;
for(int i=0 ; i<5 ; i++){
vec.push_back(i * 10); // [0, 10, 20, 30, 40]
}
for(int i=0 ; i<vec.size() ; i++){
cout << vec[i] << endl; // 輸出 0, 10, 20, 30, 40
}
}
複製代碼
ex3:
int arr[] = {1, 2, 3, 4, 5};
vector<int> vec(arr, arr+5); // vec = [1, 2, 3, 4, 5]
// 把 0 放在 vec.begin() 的位置 -> [0, 1, 2, 3, 4, 5]
vec.insert(vec.begin(), 0);
// 在尾巴加三個 100 -> [0, 1, 2, 3, 4, 5, 100, 100, 100]
vec.insert(vec.end(), 3, 100);
// 移除第 0 個元素 -> [1, 2, 3, 4, 5, 100, 100, 100]
vec.erase(vec.begin());
// 移除最後一個元素 -> [1, 2, 3, 4, 5, 100, 100]
vec.erase(vec.end() - 1);
// 移除前五個元素 -> [100, 100]
vec.erase(vec.begin(), vec.begin() + 5);
cout << vec.size() << endl; // size = 2
複製代碼
作者:
李宗儒
時間:
2024-7-8 16:42
此帖僅作者可見
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/)
Powered by Discuz! 7.2