vector
特點:
1.可變長的動態(tài)數(shù)組
2.使用時包含頭文件 #include
3.支持隨機(jī)訪問迭代器
? 根據(jù)下標(biāo)隨機(jī)訪問某個元素時間為常數(shù)
? 在尾部添加速度很快
? 在中間插入慢
成員函數(shù)
初始化
[cpp] view plaincopy 01.vector(); 初始化成空 02.vector(int n); 初始化成有n個元素 03.vector(int n, const T & val); 初始化成有n個元素, 每個元素的值都是val,類型是T 04.vector(iterator first, iterator last); 初始化為與別的容器上區(qū)間[first, last)一致的內(nèi)容
舉例:
1.創(chuàng)建一個int類型的空的vector對象:
vectorintvec;
2.創(chuàng)建一個包含5個int類型數(shù)據(jù)的vector:
vectorintvec(5);
3.創(chuàng)建一個包含5個int類型數(shù)據(jù)的vector,并且都初始化為2:
vector
4.通過復(fù)制某vec容器來創(chuàng)建
vector
元素的訪問
intvec.at(index)
返回由index指定的位置上的元素
intvec[index]
返回由index指定的位置上的元素
舉例:
[cpp] view plaincopy 01.include02.#include 03.using namespace std; 04.int main() 05.{ 06. vector vec(10); 07. for (int i = 0;i != vec.size();i++) 08. { 09. vec.at(i) = i; 10. //vec[i] = i ; 11. } 12. 13. for (int i = 0;i != vec.size();i++) 14. { 15. cout << vec.at(i)< 容器的大小
表達(dá)式
作用
intvec.capacity()返回不重新分配空間可以插入到容器intvec中的元素的最大個數(shù)
intvec.empty()容器intvec為空,返回true;否則,返回false
Intvec.size()返回容器intvec中當(dāng)前的個數(shù)
intvec.resize(num)將元素個數(shù)改為num。如果size()增加,默認(rèn)的構(gòu)造函數(shù)負(fù)責(zé)創(chuàng)建這些新元素
intvec.resize(num, elem)將元素個數(shù)改為num。如果size()增加,默認(rèn)的構(gòu)造函數(shù)將這些新元素初始化為elem
舉例:
[cpp] view plaincopy 01.#include02.#include 03.using namespace std; 04.int main() 05.{ 06. vector vec1; 07. cout << vec1.empty()< vec2(20); 11. cout << vec2.empty()< vec3(15,1); 15. cout << vec3.capacity()< 容器的操作
語句
作用 intvec.clear()從容器中刪除所有元素
intvec.erase(position)刪除由position指定的位置上的元素
intvec.erase(beg,end)刪除從beg到end-1之間的所有元素
intvec.insert(position, elem)將elem的一個拷貝插入到由position指定的位置上,并返回新元素的位置
intvec.inser(position, n, elem)將elem的n個拷貝插入到由 position指定的位置上
intvec.insert(position, beg, end)將從beg到end-1之間的所有元素的拷貝插入到intvec中由position指定的位置上
intvec.push_back(elem)將elem的一個拷貝插入到vector的末尾
intvec.pop_back()刪除最后元素
intvec.front()返回第一個元素的引用,不檢查容器是否為空
Intvec.back()返回最后一個元素的引用,不檢查容器是否為空
[cpp] view plaincopy 01.#include02.#include 03.using namespace std; 04.int main() 05.{ 06. vector vec(10,1); 07. cout< vec1(1,1); 12. vec1.insert(vec1.begin()+1,2); //在該位置插入,把原來該位置以其以后的元素整體后移 13. for(int i = 0;i != vec1.size();i++) 14. cout< 02.#include 03.using namespace std; 04.int main() 05.{ 06. vector vec(10,1); 07. vec.push_back(2);//12 08. 09. cout< 二維數(shù)組
vector< vector> v(3); //v有3個元素,
//每個元素都是vector容器 [cpp] view plaincopy 01.#include02.#include 03.using namespace std; 04.int main() { 05. vector< vector > v(3); 06. for(int i=0; i 輸出:
0 1 2 3
0 1 2 3
0 1 2 3
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/64127.html
摘要:更加實際的定義應(yīng)該是一個集合是一個容器,它其中所包含的元素的值是唯一的。對而言,鍵只是指存儲在容器中的某一成員。成員函數(shù)構(gòu)造函數(shù)中的元素都是模板類對象。元素按照成員變量從小到大排列,缺省情況下用定義關(guān)鍵字的小于關(guān)系。 分類:set, multiset, map, multimap 特點:內(nèi)部元素有序排列,新元素插入的位置取決于它的值,查找速度快。 常用函數(shù): find: 查找等于...
摘要:拷貝構(gòu)造函數(shù)示例構(gòu)造無參構(gòu)造函數(shù)總結(jié)容器和容器的構(gòu)造方式幾乎一致,靈活使用即可賦值操作功能描述給容器進(jìn)行賦值函數(shù)原型重載等號操作符將區(qū)間中的數(shù)據(jù)拷貝賦值給本身。清空容器的所有數(shù)據(jù)刪除區(qū)間的數(shù)據(jù),返回下一個數(shù)據(jù)的位置。 ...
摘要:如果增加,默認(rèn)的構(gòu)造函數(shù)將這些新元素初始化為隊列當(dāng)前的元素個數(shù)交換兩個隊列兩個重載和小結(jié)向量容器,使用線性存儲結(jié)構(gòu),可以像數(shù)組一樣隨機(jī)下標(biāo)訪問元素,還可以在尾部插入元素用函數(shù)。 deque 特點: 1.雙向隊列 2.使用時包含頭文件 #include 3.deque容器與vector類似,用動態(tài)數(shù)組來管理元素,支持隨機(jī)訪問。 4.與vector不同的是deque的動態(tài)數(shù)組首尾...
閱讀 2473·2021-11-23 09:51
閱讀 533·2019-08-30 13:59
閱讀 1833·2019-08-29 11:20
閱讀 2541·2019-08-26 13:41
閱讀 3249·2019-08-26 12:16
閱讀 740·2019-08-26 10:59
閱讀 3335·2019-08-26 10:14
閱讀 607·2019-08-23 17:21