[英]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.