STL常用操作 vector

2021-10-03 13:25:17 字數 2892 閱讀 6129

vectorvec1;    //預設初始化,vec1為空

vectorvec2(vec1); //使用vec1初始化vec2

vectorvec3(vec1.begin(), vec1.end());//使用vec1初始化vec2

vectorvec4(10); //10個值為0的元素

vectorvec5(10, 4); //10個值為4的元素

int arr[7]=; vectorvec6(arr,arr+7); //從陣列中獲得初值

vectorvec7 = ;

vectorvec8; //使用initializer_list初始化

vec1.push_back(100);           //尾部新增元素

vec1.emplace(vec1.begin()+1, 5); //在第乙個元素之後插入5

vec1.emplace_back(100); //尾部新增元素

vec1.pop_back(); //刪除末尾元素,但是並沒有返回值

vec1.back(); //返回末尾元素

vec1.front(); //返回第乙個元素

vec1.size(); //元素個數

vec1.empty(); //判斷是否為空

vec1[0]; //取得第乙個元素

vec1.at(0); //取得第乙個元素,並且會進行越界檢查

vec1.data(); //返回陣列第乙個元素的指標

vec1.insert(vec1.begin()+1,5); //在第乙個元素之後插入數值5

vec1.insert(vec1.end(),5,3); //從vec1.back位置插入5個值為3的元素

vec1.insert(vec.begin()+1,arr+3,arr+6); //在第乙個元素之後插入陣列arr[3]到arr[5]

vec1.erase(vec1.begin()); //刪除第乙個元素

vec1.erase(vec1.begin(),vec1.begin()+2);//刪除vec1[0, 2)之間的元素

vec1.resize(10); //將vec1的元素變成10個,多則刪,少則補,值為0

vec1.resize(10,2); //將vec1的元素變成10個,多則刪,少則補,值為2

vec1==vec2; //判斷是否相等==、!=、>=、<=...

vector::iterator it=vec1.begin(); //獲取迭代器首位址

vector::const_iterator c_it=vec1.cbegin(); //獲取const型別迭代器

vector::reverse_iterator r_it=vec1.rbegin(); //獲取逆序後vector迭代器首位址

vector::const_reverse_iterator cr_it=vec1.crbegin(); //獲取const型別迭代器

vec1.clear(); //清空元素

vec1.assign(vec2.begin(), vec2.begin()+3);    //將vec2從第乙個元素到第3個元素的值賦給vec1,會清除vec1之前的內容

vec1.assign(4,2); //初始化vec1為4個2

vec1.capacity(); //vec1的容量

vec1.reserve(100); //將vec1的容量(capacity)擴充至100

vec1.swap(vec2); //將vec1中的元素和vec2中的元素進行交換

vec1.shrink_to_fit(); //通過釋放未使用的記憶體減少記憶體的使用

ifstream if("data.txt"); //從檔案中讀取值到vec1中

vectorvec1;

for(int i; if >> i) vec.push_back(i);

vec1.max_size(); //返回vector最大可以有多少個元素

allocatoralloc = vec1.get_allocator(); //返回vector的記憶體分配器

vector> matrix(2,vector(5));//初始化2行5列的二維陣列,初值值為0

for(int i = 0; i < vec.size(); i++)
for(vector::iterator it = vec1.begin(); it != vec.end(); it++)
for(auto i : vec)
for_each(vec.begin(), vec.end(), (int x) );

sort(vec.begin(),vec.end());     //從小到大排列

reverse(vec.begin(),vec.end()); //元素倒置

copy(vec1.begin(),vec1.end(),vec2.begin()+1);//把vec1的所有元素複製到vec2中,替換vec2原位置的元素,vec2要有足夠的空間

find(vec.begin(),vec.end(),10); //在vec查詢10,若存在返回位置,不存在返回end()

distance(vec.begin(), vec.end()); //返回之間的距離,不包括end位置

STL常用容器(2) vector

vector 資料結構 和陣列非常相似,也稱為單端陣列 區別 vector可以動態擴充套件 動態擴充套件 並不是在原空間上續接新空間,而是在找更大的記憶體空間,然後將原資料拷貝到新空間,釋放原空間 迭代器 支援隨機訪問的迭代器 構造方法 賦值 assign beg,end 容量 capacity 大...

C 的STL的vector常用函式

列舉了一些基本的增刪查改的函式 include 標頭檔案 vectorv 宣告 v.push back element 插入元素到末尾 v.insert v.begin 1 在第0個元素前面插入1 v.insert v.begin 2,2 在第二個元素前面插入2 v.insert v.end 100...

STL常用操作 multiset

multisetset1 建立空set multisetset2 set1 拷貝構造 multisetset3 set1.begin set1.end 迭代器構造 multisetset4 arr,arr 5 陣列構造 multisetset5 move set2 移動構造 multisetset6...