繁体   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