Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 请给我解释两行 typedef向量::size_type向量_sz; vec_sz size=家庭作业.size();_C++ - Fatal编程技术网

C++ 请给我解释两行 typedef向量::size_type向量_sz; vec_sz size=家庭作业.size();

C++ 请给我解释两行 typedef向量::size_type向量_sz; vec_sz size=家庭作业.size();,c++,C++,如果您了解STL容器的基本知识,那么这些是老师给您的测试示例行。typedefdefines atype,因此您可以使用这个新名称,而不是较长的旧名称,至少在本例中是这样。然后定义一个变量大小,它的类型是刚刚定义的类型。最后,将此大小变量的值设置为家庭作业对象的大小,可能也是一个向量。vector::size\u type已被定义为一个整数类型(这表示“如果我有一个‘double’元素的向量,你会用什么来表示它的大小?” 将其进一步定义为vec_sz有助于缩短类型名称。因此 typedef ve

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

typedefdefines atype,因此您可以使用这个新名称,而不是较长的旧名称,至少在本例中是这样。然后定义一个变量大小,它的类型是刚刚定义的类型。最后,将此大小变量的值设置为家庭作业对象的大小,可能也是一个向量。

vector::size\u type
已被定义为一个整数类型(这表示“如果我有一个‘double’元素的向量,你会用什么来表示它的大小?”

将其进一步定义为
vec_sz
有助于缩短类型名称。因此

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

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


第二行应该是自解释的。

类向量为
size\u type
发布了
typedef
。第一行将其重新定义为较短的符号
vec\u sz
向量
还定义了一个成员函数
size()
返回
size\u type

好的,在vector的声明中,您会发现:

typedef unsigned int size_type;(它实际上取决于您的实现,因此可能不是unsigned int)

现在在向量中有一个size_类型

“typedef vector::size_type vec_sz;”现在将与以下内容相同:

typedef unsigned int vec_sz

现在“vector::size_type”是“unsigned int”的同义词,请记住size_type是一个类型,而不是一个变量

vec_sz size=家庭作业.size()

等于:

vector::size_type size=家庭作业.size()

Wich等于:

unsigned int size=家庭作业.size()


希望能很清楚:P</P>代码是从书中提炼出来的C++,3.2.2生成输出,不是来自作业。看起来像一个家庭作业相关的问题,向量名“作业”给了我这样的印象。
vector<double>::size_type size;
unsigned long size;