C STL 之動態陣列vector

2021-10-03 08:42:15 字數 1658 閱讀 1172

c++中的vector是乙個可以改變大小的陣列,當解題時無法知道自己需要的陣列規模有多大時可以用vector來達到最大節約空間的目的。使用時需要包含vector標頭檔案。

c++中定義一維動態陣列:

vectora;  //int為該動態陣列的元素資料型別,可以為string、double等
c++中定義二維動態陣列:

vectora; //三維資料型別為int**,以此類推。
vector的基本操作:

1、push_back(x) 在陣列的最後新增元素x

2、pop_back() 刪除最後乙個元素,無返回值

3、at(i) 返回位置i的元素

4、begin() 返回乙個迭代器,指向第乙個元素

5、end() 返回乙個迭代器,指向最後乙個元素的下乙個位置

6、front() 返回陣列頭的引用

7、capacity(x) 為vector分配空間

8、size() 返回陣列大小

9、resize(x) 改變陣列大小,如果x比之前分配的空間大,則自動填充預設值

10、insert 插入元素 ①a.insert(a.begin(),10); 將10插入到a的起始位置前 ②a.insert(a.begin(),3,10) 將10插入到陣列位置的0-2處

11、erase 刪除元素 ①a.erase(a.begin()); 將起始位置的元素刪除。 ②a.erase(a.begin(),begin()+2); 將0~2之間的元素刪除 

12、rbegin() 返回乙個逆序迭代器,它指向最後乙個元素

13、rend() 返回乙個逆序迭代器,它指向的第乙個元素前面的位置

14、clear()清空所有元素

例子:

#include #include #include using namespace std;

int main()

a.swap(b); //將陣列a元素與陣列b元素交換

cout << a.size() << " " << b.size() << endl; //此時應當輸出 0 10

for (vector::iterator it = b.begin(); it != b.end(); it++)//從第乙個元素開始遍歷陣列元素

cout << endl;

b.erase(b.begin() + 1); //刪除位置1的元素,即元素1.

cout << b.size() << endl; //由於刪除了乙個元素,此時輸出應當為8

for (vector::reverse_iterator rit = b.rbegin(); rit != b.rend(); ++rit)//逆向輸出陣列元素

cout << endl;

b.resize(9); //將陣列空間設定為9,相當於比之前多了1個位置

b.push_back(20);//在尾部新增元素20

for (vector::iterator it = b.begin(); it != b.end(); it++)

return 0;

}

c stl之動態陣列(vector)

1.放入容器尾部vis.push back x 2.元素個數vis.size 3.刪除元素vis.erase vis.begin 1 表示刪除第二個元素,刪除的是迭代器 4.檢查容器是否為空vis.empty 5.返回容器尾部的元素vis.back 6.清空容器vis.clear 7.插入元素vis...

C STL 動態陣列Vector

include include using namespace std intmain include include using namespace std intmain include include using namespace std intmain 輸出動態陣列的值 for int i...

C STL之vector用法總結

vector是表示可變大小陣列的序列容器。就像陣列一樣,vector也採用的連續儲存空間來儲存元素。也就是意味著可以採用下標對vector的元素進行訪問,和陣列一樣高效。但是又不像陣列,它的大小是可以動態改變的,而且它的大小會被容器自動處理。本質講,vector使用動態分配陣列來儲存它的元素。當新元...