C++標(biāo)準(zhǔn)庫(kù)封裝的vector數(shù)組

前言:
如果構(gòu)建基本類型的數(shù)組或者自定義類型的數(shù)組,那么需要自己擴(kuò)展數(shù)組的功能,還有很多需要自己解決的問題,比如需要防止數(shù)組越界問題。此時(shí),可以采用C++標(biāo)準(zhǔn)庫(kù)提供的vector模板,vector創(chuàng)建的對(duì)象包含眾多封裝好的函數(shù),比如“對(duì)象名.size()”函數(shù)可以很方便的查看數(shù)組的大小。下面從定義、使用、做函數(shù)引用等方面分別進(jìn)行記錄,并討論vector對(duì)象和數(shù)組的區(qū)別。
1、創(chuàng)建和使用vector對(duì)象
vector對(duì)象的創(chuàng)建和使用語(yǔ)法如下:
/// 創(chuàng)建
vector<類型>對(duì)象名(數(shù)組長(zhǎng)度, 元素初值)/// 取元素
對(duì)象名[下標(biāo)]/// 使用對(duì)象的函數(shù)
對(duì)象名.函數(shù)名()
創(chuàng)建vector對(duì)象需要指定的“類型”可以是基本數(shù)據(jù)類型或者是類類型,如果是基本數(shù)據(jù)類型可以使用固定數(shù)值進(jìn)行初始化(所有元素的初值只能相同);如果“類型”是類類型,那么就會(huì)調(diào)用“默認(rèn)構(gòu)造函數(shù)”進(jìn)行初始化。下面第一個(gè)例子為基本數(shù)據(jù)類型作為vector元素的例子:
/// 構(gòu)建vector對(duì)象,指定數(shù)組長(zhǎng)度為3,初值為666
vector<int>data(3, 666);
/// 取元素
printf("%d \n", data[1]);
/// 調(diào)用vector對(duì)象的函數(shù)
printf("%d \n", data.size());第二個(gè)例子是類類型的情況,此時(shí)將會(huì)調(diào)用類的默認(rèn)構(gòu)造函數(shù),用于初始化:
/// 自定義的Duck類
class Duck {
public:
? ? /// 默認(rèn)構(gòu)造函數(shù)
?? ?Duck() { duckAge = 666; }
?? ?int duckAge;
};
/// 創(chuàng)建Duck類型的vector對(duì)象
vector<Duck>ducks(3);
/// vector的元素為Duck對(duì)象,可以調(diào)用Duck對(duì)象的成員
printf("%d \n", ducks[1].duckAge);2、vector對(duì)象的引用
vector對(duì)象和其它類型的對(duì)象在引用的定義和使用的規(guī)則相同,都采用先聲明引用,再將引用指向某個(gè)對(duì)象,最后通過引用操作對(duì)象。
下面是聲明vector類型的引用語(yǔ)法:
vector <類型名>&引用名;
使用引用作為函數(shù)參數(shù)時(shí),最好定義常引用,防止對(duì)象被意外的更改:
void vectorSize(vector<int>&vec) {
?? ?printf("%d \n", vec.size());
}到此這篇關(guān)于C++標(biāo)準(zhǔn)庫(kù)封裝的vector數(shù)組的文章就介紹到這了,更多相關(guān)C++的 vector數(shù)組內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
可能是全網(wǎng)最詳細(xì)的Qt連接MySQL數(shù)據(jù)庫(kù)教程
QT眾所周知是一個(gè)開源的,以C++為底層的可視化工具庫(kù),下面這篇文章主要給大家介紹了關(guān)于最詳細(xì)的Qt連接MySQL數(shù)據(jù)庫(kù)教程的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04
C++中運(yùn)算符重載的規(guī)則語(yǔ)法實(shí)例
今天小編就為大家分享一篇關(guān)于C++中運(yùn)算符重載的規(guī)則語(yǔ)法實(shí)例,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-12-12
C++動(dòng)態(tài)分配和撤銷內(nèi)存以及結(jié)構(gòu)體類型作為函數(shù)參數(shù)
這篇文章主要介紹了C++動(dòng)態(tài)分配和撤銷內(nèi)存以及結(jié)構(gòu)體類型作為函數(shù)參數(shù),是C++入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-09-09
C語(yǔ)言實(shí)現(xiàn)圖的遍歷之深度優(yōu)先搜索實(shí)例
這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)圖的遍歷之深度優(yōu)先搜索實(shí)例,采用不同的方法實(shí)現(xiàn)了深度優(yōu)先搜索算法,有不錯(cuò)的借鑒價(jià)值,需要的朋友可以參考下2014-09-09
C語(yǔ)言實(shí)現(xiàn)循環(huán)隊(duì)列
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)循環(huán)隊(duì)列,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-07-07
C語(yǔ)言中結(jié)構(gòu)體偏移及結(jié)構(gòu)體成員變量訪問方式的問題討論
這篇文章主要介紹了C語(yǔ)言中結(jié)構(gòu)體偏移及結(jié)構(gòu)體成員變量訪問方式的問題討論,幫助大家理解struct的成員變量偏移,需要的朋友可以參考下2016-05-05
FFmpeg實(shí)戰(zhàn)之分離出PCM數(shù)據(jù)
PCM(Pulse?Code?Modulation,脈沖編碼調(diào)制)音頻數(shù)據(jù)是未經(jīng)壓縮的音頻采樣數(shù)據(jù)裸流,它是由模擬信號(hào)經(jīng)過采樣、量化、編碼轉(zhuǎn)換成的標(biāo)準(zhǔn)數(shù)字音頻數(shù)據(jù)。本文將通過FFmpeg實(shí)現(xiàn)分離PCM數(shù)據(jù),感興趣的可以了解一下2023-02-02

