STL學習筆記(三) vector

2021-10-05 21:18:10 字數 1943 閱讀 5276

1、定義(建構函式):

1)、vector vec; //<>的內容根據儲存型別定,如char/short/long/char /string… ,同時結構體亦可以,其未定義大小

struct st; voctor vec;

2)、vector vec1(6); //大小為6,值預設為0

3)、vector vec2(6,8); //大小為6,所有值初始化為8

4)、vector vec3(vec1); //拷貝構造

5)、vector vec4(vec2.begin(),vec2.end()); //或使用迭代器vector :: iterator ite= vec2.begin();,此時ite相當於int指標

2、容量

1)、vector vec; 為0

2)、vector vec1(6,1); 為6

3)、vec1.push_back(1); //此時vec1的容量會增加,至於增加多少,不同編譯器不同 ,因為新申請空間,迭代器失效

4)、vec2.reserve(100); 擴充套件容量,只能比原來大,此時容量為100

5)、vec2.size() //返回有效元素的個數,與容量大小無關,如進行4操作後,其size為7

6)、vec2.resize(10); //重新設定有效元素的個數,與容量無關,可大可小,記憶體不夠時重新申請

7)、vec2.empty() //若vec2為空返回0,否則返回1;

3、操作——輸出 vector vec(60,1);

1)、cout << vec[i] << endl;

2)、cout << vec.at(i) << endl;

3)、cout << vec.back() << endl; //輸出尾元素

4)、for(ite; ite != vec.end(); ite++) //使用迭代器

5)、for_each(vec.begin(),vec.end(),fun); //其中fun為自定義的函式,引數須為int c,注意不能寫成fun,使用需要#include

4、操作——增加 vector vec(5,1); vector vec1(5,2);

1)、vec.push_back(999); //將999新增到尾部

2)、vec.insert(vec.begin(),3); //最前面插入3 或vec.insert(ite,3);使用迭代器

3)、vec.insert(vec.begin(),3,9); //最前面插入3個9

4)、vec.insert(vec.begin(),vec1.begin()+1,vec1.end()); //將vec1的部分插入到vec

5、操作——刪除/交換/排序及其他 vector vec(5,1); vector vec1(5,2);

1)、vec.pop_back(); //刪除最後乙個元素

2)、vec.erase(vec.begin()+1); //刪除第二個元素

3)、vec.erase(vec.begin(),vec.end()-1); //刪除一段

4)、vec.clear(); //刪除所有元素

5)、vec.swap(vec1); //交換內容

6)、cout << (vec > vec1) << endl; //運算子過載,成立返回1,否則0

7)、sort(vec.begin(),vec.end()); //從小到大排序

8)、sort(vec.begin(),vec.end(),greater()); //從大到小排序,使用greater())有時需要include

9)、random_shuffle(vec.begin(),vec.end()); //將容器的元素隨機打亂,通常配合srand((unsigned int) time(0));種子使用

STL之vector學習筆記

參考sgi stl 及 侯捷 stl原始碼剖析 概述 vector是動態空間,隨著元素的加入,它的內部機制會自行擴充空間以容納新元素。但是它不是單純地 配置新空間 資料移動 釋放舊空間,它實際配置的大小會比客戶需求要大一點定義 sgi stl的vector實現於stl vector.h中,而不是ve...

STL學習筆記 陣列(vector)

2.屬性 3.操作 4.運算子過載 5.兩個演算法 關鍵字 引數列表 變數名 關鍵字 容器名字 類名 引數列表 容器的資料型別 2.容器的資料型別 基本資料型別 eg int char 本質和string一樣 結構體指標 物件 普通類物件 同結構體 其他容器物件 string沒有引數列表 strin...

STL學習筆記1 vector

c stl standard template library 標準模板庫是通用類模板和演算法的集合。包含一些標準的資料結構的實現如queues 佇列 lists 鍊錶 stacks 棧 等。stl提供了以下三類資料結構的實現 標準容器類 順序性容器 vector 從後面快速插入和刪除,直接訪問任何...