簡體   English   中英

請給我解釋兩行

[英]Please explain two lines to me

typedef vector<double>::size_type vec_sz;
vec_sz size = homework.size();

第一行創建 vector<double>::size_type類型的別名 typedef關鍵字通常用於創建“新”數據類型名稱,該名稱通常比原始名稱短,或者給定應用程序的名稱更清晰。

在那之后,第二行應該是不言自明的。

如果您了解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.

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