typedef vector<double>::size_type vec_sz;
vec_sz size = homework.size();
答案 0 :(得分:5)
如果您了解STL容器的基础知识,那么它们是您的老师给您测试的示例行。
答案 1 :(得分:5)
vector<double>::size_type
类型的第一行creates an alias。 typedef
关键字通常用于生成“新”数据类型名称,这些名称通常比原始名称短,或者具有给定应用程序的更清晰的名称。
之后第二行应该是不言自明的。
答案 2 :(得分:3)
typedef def 使用类型,因此您可以使用此新名称而不是较旧的名称,至少在此示例中。然后定义一个可变大小,它的类型是刚定义的类型。最后,这个size变量的值设置为家庭作业对象的大小,也可能是一个向量。
答案 3 :(得分:2)
vector<double>::size_type
已经被typedef为一个整数类型(这读作“如果我有一个'double'元素的向量,你会用它的大小?”。
将vec_sz
进一步定义,以缩短类型名称是有意义的。因此,
vec_sz size;
相当于:
vector<double>::size_type size;
等同于用于大小的任何整数类型,例如
unsigned long size;
答案 4 :(得分:1)
类向量为typedef
发布size_type
。您的第一行重新定义为较短的符号vec_sz
。 vector
还将成员函数size()
定义为返回size_type
。
答案 5 :(得分:0)
好的,在vector&lt;&gt;的声明中你会发现:
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();
这等于:
unsigned int size = homework.size();
希望很清楚:P