C++ 向量<;双重>;::尺寸\ U型vs.双
为什么在循环中使用C++ 向量<;双重>;::尺寸\ U型vs.双,c++,vector,C++,Vector,为什么在循环中使用vector::size\u type,而不仅仅是,比如说,double?我以前从来没有真正弄乱过C++vectors,我当时正在阅读。作者将他们的for循环写为 for (vector<double>::size_type i = 0; i < 20; i++) { cout << "Enter marks for student #" << i+1 << ": " << flush;
vector::size\u type
,而不仅仅是,比如说,double
?我以前从来没有真正弄乱过C++
vectors,我当时正在阅读。作者将他们的for循环写为
for (vector<double>::size_type i = 0; i < 20; i++)
{
cout << "Enter marks for student #" << i+1
<< ": " << flush;
cin >> student_marks[i];
}
(向量::大小_类型i=0;i<20;i++)的
{
cout如果您希望您的代码是可移植和可维护的,那么您必须使用定义的size\u类型
在要索引的容器中
如果您想要99%的解决方案,那么目前,至少在gcc上,所有大小_类型仅此而已
而不是size\u t的typedefs(这是一个无符号的int),所以您可以使用size\u t。但是,明白吗
这可能会在将来发生变化,您的代码可能会停止工作或停止编译。如果您希望代码可移植且可维护,则必须使用定义的大小类型
在要索引的容器中
如果您想要99%的解决方案,那么目前,至少在gcc上,所有大小_类型仅此而已
而不是size\u t的typedefs(这是一个无符号的int),所以您可以使用size\u t。但是,明白吗
这可能会在将来发生变化,您的代码可能会停止工作或停止编译。如果您希望代码可移植且可维护,则必须使用定义的大小类型
在要索引的容器中
如果您想要99%的解决方案,那么目前,至少在gcc上,所有大小_类型仅此而已
而不是size\u t的typedefs(这是一个无符号的int),所以您可以使用size\u t。但是,明白吗
这可能会在将来发生变化,您的代码可能会停止工作或停止编译。如果您希望代码可移植且可维护,则必须使用定义的大小类型
在要索引的容器中
如果您想要99%的解决方案,那么目前,至少在gcc上,所有大小_类型仅此而已
而不是size\u t的typedefs(这是一个无符号的int),所以您可以使用size\u t。但是,明白吗
这可能会在将来发生变化,您的代码可能会停止工作或停止编译。基本类型可以分为浮点类型和算术类型。浮点类型对索引建模非常不利,因为其主要目的是能够表示本质上不完整的值。在对一个值为1.75的向量进行索引?可以在位置1或2处索引向量,但在位置1.75处没有对象
可用于为容器编制索引的可能值的范围会出现不同的问题。有不同的整数类型,如unsigned char
或short
,虽然它们自然适合编制索引的目的,但其范围可能远小于容器的大小,因此无法用于访问向量中的y位置,有些值可能不是有效的索引,如-1。这两个都是double
的问题:它可以表示负值,作为索引没有意义,并且不能精确表示uint64\u t
(这是64位体系结构中size\u type
的常见类型)
标准库要求每个容器提供嵌套类型(或typedef
)可用于索引到容器中的。这将是一个整数无符号类型,其大小足以引用容器中的任何元素。使用嵌套的typedef
意味着无论何时使用不同的实现、不同的体系结构或不同的编译器构建程序,它都是正确的索引类型。基本类型可分为浮点型和算术型。浮点型对索引建模非常不利,因为其主要目的是能够表示本质上不完整的值。对值为1.75的向量进行索引会产生什么结果?或者将其索引到vecto中r位于位置1或2,但在位置1.75处没有对象
可用于为容器编制索引的可能值的范围会出现不同的问题。有不同的整数类型,如unsigned char
或short
,虽然它们自然适合编制索引的目的,但其范围可能远小于容器的大小,因此无法用于访问向量中的y位置,有些值可能不是有效的索引,如-1。这两个都是double
的问题:它可以表示负值,作为索引没有意义,并且不能精确表示uint64\u t
(这是64位体系结构中size\u type
的常见类型)
标准库要求每个容器提供嵌套类型(或typedef
)可用于索引到容器中的。这将是一个整数无符号类型,其大小足以引用容器中的任何元素。使用嵌套的typedef
意味着无论何时使用不同的实现、不同的体系结构或不同的编译器构建程序,它都是正确的索引类型。基本类型可分为浮点型和算术型。浮点型对索引建模非常不利,因为其主要目的是能够表示本质上不完整的值。对值为1.75的向量进行索引会产生什么结果?或者将其索引到vecto中r位于位置1或2,但在位置1.75处没有对象
可用于为容器编制索引的可能值的范围会出现不同的问题。有不同的整数类型,如unsigned char
或short
,虽然它们自然适合编制索引的目的,但其范围可能远小于容器的大小,因此无法用于访问y在向量中的位置,有些值可能不是有效的索引,如-1