请向我解释两行

时间:2009-07-20 08:04:14

标签: c++

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

6 个答案:

答案 0 :(得分:5)

如果您了解STL容器的基础知识,那么它们是您的老师给您测试的示例行。

答案 1 :(得分:5)

vector<double>::size_type类型的第一行creates an aliastypedef关键字通常用于生成“新”数据类型名称,这些名称通常比原始名称短,或者具有给定应用程序的更清晰的名称。

之后第二行应该是不言自明的。

答案 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_szvector还将成员函数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