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