VECTOR動態陣列

2021-06-20 16:34:54 字數 1212 閱讀 3857

vector是同一種型別的物件的集合 

vector的資料結構很像陣列,能非常高效和方便地訪問單個元素

vector是乙個類模板(class template) 

要使用vector必須包含相關標頭檔案

#include

using std::vector; 

注:空間是連續的  空間是可以擴充套件的 (貌似是矛盾的 在stl會剖析具體使用)

vector物件的初始化:

vector類定義了好幾種建構函式

vectorv1; 

//vector儲存型別為t的物件。預設建構函式v1為空

vectorv2(v1);// v2是v1的乙個副本 

vectorv3(n, i); //v3包含n個值為i的元素 

vectorv4(n); 

//v4含有值初始化的元素的n個副本

string 等價於 basic_string(char)

typedef vectorintvec   //這樣子比較好編寫

void showvec(const intvec& v)

cout的迭代器相當於是int *

疑問:為什麼不用< ??  其實也是可以的

但是!=具有比較好的可移植性  任何乙個容器都過載了!=運算子

為什麼不用後置++運算子過載??

如果是後置++,會多一次臨時物件的構造,並且會呼叫拷貝建構函式!!!

//其它容器可能是乙個類  所以用前置++也會有較好的移植性

const_iterator:

void showvec(const intvec& v)

cout<

#include #include #include using namespace std;

typedef vectorintvec;

void showvec(const intvec& v)

cout凡事涉及迭代器都是閉開區間

v.erase(remove(v.begin(), v.end(), 3), v.end());

showvec(v);

return 0;

}

stl六大元件

容器  迭代器   演算法  函式物件  介面卡 記憶體分配器

Vector 動態陣列

容器 順序式容器 vecto 動態陣列,從末尾快速插入刪除,直接訪問任何元素 list 雙鏈表,從任何地方快速插入刪除 deque 雙向佇列,從前面與後面快速插入刪除,直接訪問任何元素 priority queue 優先佇列,最高優先順序元素總是最先出列 stack 棧,後進先出 先進後出 關聯式容...

vector 動態陣列

含義v.push back 在vector最後新增乙個元素 v.pop back 移除最後乙個元素 v.insert 插入元素到vector中 v.back 返回最末乙個元素 v.begin 返回第乙個元素的迭代器 v.end 返回最末元素的迭代器 譯註 實指向最末元素的下乙個位置 v.erase ...

vector動態建立陣列

相應的標頭檔案 include vector定義向量物件 vector ivec 定義向量物件 ivec vector ivec1 ivec 定義向量物件ivec1,並用ivec初始化 vector ivec2 n,1 定義向量ivec2,包含了n個值為1的元素 vector ivec3 n 定義向...