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