日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
c++vector用法入門必看超詳細(xì)-創(chuàng)新互聯(lián)
1、vector的作用

vector是最常用的容器之一,功能十分強大,可以儲存、管理各種類型的數(shù)據(jù)。在很多情況下可以用來代替功能比較局限的普通數(shù)組,因為我們知道,普通數(shù)組只能實現(xiàn)一對一的映射而不能實現(xiàn)一對多的映射,vector就是專門為了解決這個問題而誕生的。vector也可以稱為動態(tài)數(shù)組,因為其大小是根據(jù)實時更新而變化的,正因為如此vector顯得更加靈活易用。

成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的瑪曲網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

舉個例子
小明擁有一根香蕉和兩個蘋果
小芳擁有一根棒棒糖個三個梨
那么你試著思考一下,應(yīng)當(dāng)如何在程序中表示這種結(jié)構(gòu)呢?這就是一對多映射的例子,學(xué)完vector就可以輕松解決這個問題了。

2、vector的定義

vector<儲存的類型>容器名
如:
儲存int型的值 vectorv;
儲存double型的值 vectorv;
儲存string型的值 vectorv;
儲存結(jié)構(gòu)體或者類的值的值 vector<結(jié)構(gòu)體名>v;

當(dāng)然也可以定義vector數(shù)組:
儲存int型的值 vectorv[n];
儲存double型的值 vectorv[n];
等等,n為數(shù)組的大小

3、vector常用的成員函數(shù)
//這些都是必會的成員函數(shù)
size()//返回返回容器中元素個數(shù)
begin()//返回頭部迭代器
end()//返回尾部+1迭代器
rbegin()//返回逆首部迭代器
rend()//返回逆尾部-1迭代器
front()//返回首個元素
back()//返回尾部元素
push_back()//在末尾添加一個函數(shù)
emplace_back()//和push_back()是一樣的作用
pop_back()//彈出最后一個元素
empty()//判斷是否為空
insert()//在指定位置插入元素
erase()//在指定位置刪除元素
clear()//清空容器

詳細(xì)解析:
(1)size()
size()是最常用的成員函數(shù)了,常用于vector的遍歷和元素個數(shù)的查詢

(2)push_back()
出了初始化以外,push_back()是vector最重要的修改函數(shù)了,復(fù)雜度為O(1),而insert()的復(fù)雜度為O(n),差距明顯

(3)front()、back()
查詢首元素和未元素,其實通過隨機訪問,v[0]、v[v.size()-1]是可以達(dá)到相同效果的,用front()和back()顯得專業(yè)點

(4)begin()、end()
通常用來方便排序的,也可以用來遍歷,但沒必要,通過下標(biāo)遍歷更簡單快捷,rbegin()、rend()則可以用來逆序排序

(5)insert()
insert (position, x );
insert (position, n, x );
insert (position, first, last );
插入新的元素,
第一個函數(shù),在迭代器指定的位置前插入值為x的元素
第二個函數(shù),在迭代器指定的位置前插入n個值為x的元素
第三個函數(shù),在迭代器指定的位置前插入另外一個容器的一段序列迭代器first到last
復(fù)雜度很高,迫不得已不使用

(6)erase()
erase ( position );
erase (first, last );
刪除元素或一段序列
同樣地,復(fù)雜度很高,迫不得已不使用

示例代碼:

#include//c++標(biāo)準(zhǔn)頭文件,可以使用cout,cin等標(biāo)準(zhǔn)編譯用法
#include//使用vector時需要的頭文件 
#include//包含許多內(nèi)置函數(shù),如排序、倒置、交換等函數(shù) 
using namespace std;//命名空間,防止重名給程序帶來各種隱患,使用cin,cout,map,set,vector,queue時都要使用
//遍歷函數(shù) 
void print(auto v){for(auto c:v){cout<vectorv;//定義一個 int型vector 
	
	v.emplace_back(3);
	v.emplace_back(4);
	v.emplace_back(1);
	v.emplace_back(2);
	cout<<"現(xiàn)在有的元素 :";
	print(v);
	cout<

運行結(jié)果:

現(xiàn)在有的元素 :3 4 1 2

v.front()=3
v.back()=2

排序后 :1 2 3 4
v.front()=1
v.back()=4
v.size()=4

插入5、6后: 1 2 5 6 3 4

倒置后: 4 3 6 5 2 1

逆序排序后 :6 5 4 3 2 1
v.empty()=0
(v.size()==0)=0

v清空后
v.empty()=1
(v.size()==0)=1
4、vector的三種遍歷方法 (1)迭代器iterator

代碼:

#include#includeusing namespace std;
int main(){vectorv;//定義 
	v.emplace_back(1);//插入元素1 
	v.emplace_back(3);//插入元素3
	v.emplace_back(2);//插入元素2
	vector::iterator it;//使用迭代器
	for(it=v.begin();it!=v.end();it++){cout<<*it<<' ';
	} 
}

運行結(jié)果:

1 3 2
(2)下標(biāo)遍歷

代碼:

#include#includeusing namespace std;
int main(){vectorv;//定義 
	v.emplace_back(1);//插入元素1 
	v.emplace_back(3);//插入元素3
	v.emplace_back(2);//插入元素2
	for(int i=0;icout<

運行結(jié)果:

1 3 2
(3)foreach遍歷

代碼:

#include#includeusing namespace std;
int main(){vectorv;//定義 
	v.emplace_back(1);//插入元素1 
	v.emplace_back(3);//插入元素3
	v.emplace_back(2);//插入元素2
	for(int c:v){cout<

運行結(jié)果:

1 3 2

兩種逆序遍歷:
代碼:

#include#includeusing namespace std;
int main(){vectorv;//定義 
	v.emplace_back(1);//插入元素1 
	v.emplace_back(3);//插入元素3
	v.emplace_back(2);//插入元素2
	
//	迭代器法 
	vector::reverse_iterator it;//使用迭代器
	for(it=v.rbegin();it!=v.rend();it++){cout<<*it<<' ';
	} 
	cout<=0;i--){cout<

運行結(jié)果:

2 3 1
2 3 1

foreach雖然簡單易用,但是不支持逆序遍歷

有小伙伴發(fā)現(xiàn)dev不能編譯部分代碼,那是因為dev還未支持c++11,可以看這篇文章解決
dev使用c++11教程

是不是很簡單呢?

剛接觸肯定會覺得難,多些做題多些用,熟悉了就容易了,兄弟萌,加油?。?!

文章尚有不足,歡迎大牛們指正

感謝觀看,點個贊吧

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


本文名稱:c++vector用法入門必看超詳細(xì)-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://www.dlmjj.cn/article/csghhp.html