C 自帶向量 vector C

2022-05-18 04:55:20 字數 1571 閱讀 2310

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());

預設公升序,若要降序需手寫乙個比較器

1

bool 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 向量 訪問向量中的元素。在陣列中間...