淺談Vector
@
目錄- 淺談Vector
- 1、容器基本操作
- 2、vector 初始化
- 3、vector的賦值與swap
- 4、vector的增刪改除
- 1.增加元素
- 2.訪問元素
- 3.洗掉元素
- 4.元素的大小
??這里我主要說的是C++的vector,vector是一種順序容器,順序容器區別去有序容器,也就是的存盤位置與大小無關,只與資料加入檔案是的順序有關,順序容易還包括deque、list、forword_list、array、string,
注意: 隨著C++泛型編程的逐漸強大,在實際操作中盡量減少使用陣列,因為容器的出現,可以使我們在實際開發專案中將陣列的使用降至最低,
1、容器基本操作
| 型別別名 | 含義 |
|---|---|
| iterator | 顧名思義,迭代器 |
| const_iterator | 只讀迭代器 |
| size_type | 無符號整型,最大值為容器的大小 |
| difference_type | 帶符號整形,兩個迭代器之間的距離 |
| value_type | 元素型別 |
| const_reference | 元素const左值型別 |
2、vector 初始化
#include <vector>
using namespce std;
int main()
{
vector<int> vec ; //默認建構式
vector<int> vec2(vec) ; //拷貝建構式
vector<int> vec3(b,e); //利用迭代器進行初始化
vector<int> vec4{1,2,3,4}; //常用的初始化操作
vector<int> vec5(10); //創建10個元素,值默認為0
vector<int> vec6(10,6); //創建10個元素,值初始化6
}
??為了書寫方便,后面的書寫采用簡便書寫的方式,這里默認大家已經有了main函式;
3、vector的賦值與swap
vec = vec2; //將vec2的元素賦值給vec2
vec = {1,2,3,4,5}; //vec替換為串列元素
vec.swap(vec2); //交換兩者的元素
swap(vec1,vec2); //等價
vec.assign(b,e); //vec里面的元素換為迭代器b e之間的內容
vec.assign(n,t);//vec里面的元素更改為n個t
vec.assign(i1); //vec的內容更改為串列i1;
4、vector的增刪改除
1.增加元素
vec.insert(p,t);// 在迭代器p所指的位置之前插入元素t,回傳新插入元素的迭代器 直接法
vec.insert(p,n,t); //與vec.insert(p,array)相同 抽象法
vec.insert(p,b,e); //在迭代器p位置插入迭代器b,e之間的元素,回傳新插入第一個元素的迭代器 間接法
vec.insert(p,array); //在迭代器p位置插入元素值串列array,回傳第一個元素的迭代器 直接法
vec.push_back(t);//在vec末端插入元素t,回傳void
vec.push_front(t);//在vec開始端插入t,回傳void
2.訪問元素
vec.back(); //回傳最后一個元素的參考
vec.front(); //回傳第一個元素的參考
vec[n]; //下標訪問 回傳參考
vec.at[n]; //at訪問 比較安全 如果越界 拋出out of range 的例外 回傳參考
3.洗掉元素
vec.pop_back(); //洗掉vec的尾元素 回傳void
vec.pop_front();//洗掉vec的首元素,回傳void
vec.erase(p); //洗掉迭代器p所指的元素 回傳洗掉元素的前一個元素的迭代器
vec.erase(b,e);//洗掉迭代器b,e之間的元素 ,回傳最后一個被洗掉元素的之后的迭代器
vec.clear(); //洗掉vec的所有元素
4.元素的大小
vec.size();//回傳元素的數目
vec.max_size();//回傳可保存元素的最大大小
vec.empty();//vec是否為空
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/103676.html
標籤:C++
上一篇:運算子多載(三)
下一篇:演算法分析之猴子吃桃
