數組作爲基本的數據結構,有靜態數組和動態數組兩種類型。比賽中,空間足夠,能用靜態數組就靜態,不然就用vector,最後纔是用指針管理動態數組。
vector是一個模板類,其中的元素連續存儲。
使用方法如下:
- 定義:常用的定義方法如下:
例子 | 說明 |
---|---|
vector a; | 默認初始化,a空 |
vector b(a); | 用a定義b |
vector a(100); | a有100個默認初始化爲0的元素 |
vector a(100, -1); | a用100個值爲-1的元素 |
vector a(100, “hello”); | a有100個值爲"hello"的元素 |
vector a; | a可以保存自定義的結構體類型 |
- 常見操作方法:
例子 | 說明 |
---|---|
a.push_back(100); | 尾部插入一個元素 |
a.emplace_back(100); | 尾部構造一個元素 |
a.size() | 元素個數 |
bool a.empty() | 是否爲空 |
a.insert(a.begin() + i, k); | 插入一個元素 |
a.insert(a.end(), k, j); | 在尾部插入k個值爲j的元素 |
a.pop_back(); | 刪除尾部 |
a.erase(a.begin() + i, a.end() + j); | 刪除區間 |
a.erase(a.begin() + i); | 刪除元素 |
a.resize(n); | 調整大小 |
a.clear(); | 清空 |
reverse(a.begin(), a.end()); | 翻轉 |
sort(a.begin(), a.end()); | 排序 |