[英]Please explain two lines to me
typedef vector<double>::size_type vec_sz;
vec_sz size = homework.size();
如果您了解STL容器的基礎知識,它們就是老師給您測試的示例行。
typedef的高清 INES一個類型 ,這樣你至少可以在這個例子中使用,而不是再舊的這個新名字。 然后定義了一個可變大小,它的類型是剛剛定義的類型。 最后,此size變量的值設置為作業對象的大小,也可能是矢量。
vector<double>::size_type
已經作為一個整數類型進行類型定義(讀為“如果我有一個'double'元素的向量,那么它的大小將使用什么?” 。
將其進一步定義為vec_sz
可以縮短類型名稱。 因此,
vec_sz size;
等效於:
vector<double>::size_type size;
例如,它等於用於大小的任何整數類型
unsigned long size;
類向量為size_type
發布typedef
。 您的第一行將其重新定義為較短的符號vec_sz
。 vector
還將成員函數size()
定義為返回size_type
。
好的,在vector <>的聲明中,您將找到以下內容:
typedef unsigned int size_type; (它實際上取決於您的實現,因此可能不是unsigned int)。
所以現在您在vector中有一個size_type類型。
“ typedef vector :: size_type vec_sz;” 現在將與說相同:
typedef unsigned int vec_sz;
現在,“ vector :: size_type”是“ unsigned int”的同義詞,請記住,size_type是類型,而不是變量。
vec_sz size = homework.size();
等於:
vector :: size_type size = homework.size();
Wich等於:
無符號整數大小= homework.size();
希望很清楚:P
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.