Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.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++ 向量<;双重>;::尺寸\ U型vs.双_C++_Vector - Fatal编程技术网

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