簡體   English   中英

無法理解這個矢量聲明

[英]Can't understand this vector declaration

我是C ++中的一個真正的菜鳥,我有一個非常簡單的問題。

vector<int> s[10];

這個聲明實際上做了什么? 是一個容量為10整數的矢量? 與此相比有什么不同:

vector<int> s(10);

如果這是一個愚蠢的問題,我真的很抱歉,但我真的無法理解這個聲明的作用。

謝謝!

第一個是10個空向量的數組。

第二個是用10個元素初始化的單個向量。

它是std :: vector和內置數組類型的混合體。 特別是一個std::vector數組;

vector<int> s[10];

意味着創建10個矢量對象。 你可以這樣想:

vector<int> s0;
vector<int> s1;
...
vector<int> s10;

矢量對象的數量是固定的。 每個向量中的項目數可以變化。

Vector有一個像這樣的構造函數:

vector (size_type n);

所以第二個只是聲明一個大小為10的int向量。

vector<int> s[10]; 意味着“s”是一個數組,它有10個元素,每個元素的類型都是vector<int>

vector<int> s(10); 表示“s”是vector<int> ,此向量的大小為10,但這不是聲明。

當聲明一個指向具有大量參數和復雜返回值的kind函數的函數指針時,可能會有更復雜的聲明。

例如:

vector<int> (*func[10])(int *); 這聲明指針指向一個接收int *參數的函數,並返回一個vector<int>值,加上它是這種指針的數組,數組的大小是10。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM