vector 向量,是c++自帶的一種容器,其實就是乙個公升級版的陣列
因為它使用的是動態空間,所以當我們不確定陣列空間的時候可以使用它
若要使用需開啟標頭檔案
1 #include
定義乙個 vector
1 vector a;
還有一些初始化的定義,以及二位定義,但是個人認為不需在定義時花太多功夫,初始化可在預處理中進行
定義參考:
使用
1 a[1]=1;2 scanf("
%d",a[1
]);3 printf("
%d",a[1
]);4 a[1]=b;
可以像陣列一樣使用,不過要注意它的開頭是 0 號位置,即 a[0]
指標
1 a.begin() //得到開頭的指標
2 a.end() //
得到結尾+1的指標,返回的是乙個空位址
這個指標非常重要,插入刪除輸出等操作都是與其有關
插入資料
1 a.insert(a.begin(),y);
在開頭插入 y,這樣就省去了寫鍊錶的麻煩,它可以把後面的位置自動往後移動
同樣可以將指標移動,在指定的位置插入資料
1 a.insert(a.begin()+x,y);
在第 x 與第 x+1 位置之間插入資料 y
我們也可以在末尾插入資料
1 a.insert(a.end(),y);
刪除資料
與插入類似,但是只用告訴刪除的位置
1 a.erase(a.begin()+x);
把第 x+1 位刪除,也可以看做刪除 a[x]
注意,刪除最後一位裡面的指標是 a.end()-1,因為 a.end() 返回的是最後一位+1的位置
其它操作
1 a.clear(); //清空2 a.empty(); //
判斷是否為空
3 a.swap(b); //
交換 a 與 b 的資料
4 a.size(); //
返回 a 的大小
5 a.front(); //
得到 a 開頭的值,即 a[0]
6 a.back(); //
得到 a 結尾的值,即 a[a.size()-1]
排序可以使用 sort 進行
1 sort(a.begin(),a.end());
預設公升序,若要降序需手寫乙個比較器
1bool cmp(int &x,int &y)
2
然後排序的時候新增比較器
1 sort(a.begin(),a.end(),cmp);
C 向量講解
向量 vector 是乙個深奧的詞。不過這裡的向量不是數學裡的向量,也不是物理裡的向量。在c 中的向量,就是乙個存放資料的地方,類似於一維陣列和鍊錶。在第九章末尾,我們介紹了陣列儲存和鍊錶儲存的優缺點。陣列的缺點是分配空間不靈活 鍊錶的缺點是無法通過下標快速找到結點。然而這裡介紹的向量卻吸收了這兩種...
c 自帶元件處理excel
新增乙個worksheet worksheet worksheet worksheet workbook.worksheets.add system.type.missing,system.type.missing,system.type.missing,system.type.missing ro...
C 中的向量
c 中的標準模板庫 stl,standard template library 有三個主要組成部分 容器 迭代器 演算法 而stl容器可以分為三類 順序容器 關聯容器 容器介面卡 順序容器又有三種預定義的容器 向量 vector 雙端佇列 deque 表 list 向量 訪問向量中的元素。在陣列中間...