怎麼理解「vector不是一種資料型別,而只是乙個類模板,可用來定義任意多種資料型別」這句話?

時間 2021-06-03 01:36:24

1樓:

//定義乙個int型別

//vector不是一種資料型別具體表現就是,不能用vector i的方式定義乙個列表。

inti

;//模板本身就是用於擴充套件支援不同型別的,只要是模板,肯定就是多型別的,否則也沒必要寫模板了。

vector

i;

//乙個int型別vector

vector

>c;//乙個字元型別vector

//基礎函式模板通常也就支援int、char、float之類基礎多型別

/*vector本質上是乙個動態列表。相當於運輸公司的貨櫃,運的是一大堆箱子,只要你能把東西合理的塞進去,我就能把東西運到目的地。

所以其內容可以定義為任意資料型別,比如:*/

vector

data

>data

;//乙個自定義結構的vector

vector

a>a;

//乙個類的vector

//還可以這樣哦~~(注意寫法,對於後面的兩個》VS某些版本需要新增空格,否則編譯不過)

vector

>>;//乙個基於字串列表的列表,這個有點繞

//常規遇到的函式模板比較多,比如某個支援任意型別數字的加減操作神馬的。

//類模板,其實就是說:我做的這個模板不是乙個函式,而是乙個類,僅此而已

//例如對於某函式模板的使用c=

fun<

int>(a

,b);//fun本身在這裡的作用,就是乙個功能函式。

vector

a;

//這個就不一樣了,這個a是個類,是個int型別的列表物件。

//直白一點說,就是a是可以像乙個類一樣去操作。比如a.

clear

();//清空a.

size

();//返回容器中元素的個數

2樓:

可以理解為向量是乙個低階資料型別可以由此衍生出更高階的資料型別

同時vector需要例項化其元素的資料型別 e.g. std::vector < int >

3樓:阮小明

靈長目不是一種生物,只是乙個概括,其中人類等才是一種生物。

vector不是一種資料型別,而vector< int > 這種更具體的才是一種資料型別。

PS: 發現知乎打不出大於小於號,要用 & lt; & gt;

2021 03 28 定義一種數 可以表示成若干(數量 1)連續正數和的數 。比如 如何解答呢?

等差數列求和公式 題中要求連續正數,意味著 公差d 1,起始項a1 0,項數n 1。已知Sn,設為定值,則n越小則a1越大,a1越小則n越大,反之亦然。n最小為2,n最大時a1為最小的1。嘗試所有的n值,計算a1,判斷它是正整數即可。include include include 分析乙個數是否能表...

數框框是怎樣一種體驗,用著CPU顆數核數很多的電腦是怎樣一種體驗?

魯哲 x5650雙路,24core,64g記憶體,薅資本主義羊毛配了1TB ssd。大部分時間真心用不上 在家待命,遠端開機跑一些東西。靈魂如下 肉體如下 公司有30臺16core 64G的vpc 組了個spark cluster,任務一多還是要一堆任務排隊等資源,還有幾台自建伺服器,20核還是多少...

你是怎麼理解搖滾的,他是一種精神,或僅是一種曲風?

Candice mm 搖滾起來https Kevin 我個人的看法搖滾是一種意識形態不是音樂,搖滾是自由意識與真實的代表之一。雖然搖滾樂無法忽視其音樂性的影響力,但搖滾樂不能被定義在音樂領域裡。 小羊哇 1.不要混為一談,舉例說吧,乙個人可以不怎麼聽搖滾樂,卻活的很搖。2.大師說,不存在藝術,只有藝...