::size_type variable"- 以这种方式声明有什么意义?-6ren"> ::size_type variable"- 以这种方式声明有什么意义?-我认为这是一个非常基本的问题,但我无法弄清楚。 我习惯于在 C++ 中使用数组,但我现在开始学习 vector 。我正在编写测试代码,遇到了一个问题。 首先,这是我制作的代码: #include #-6ren">
gpt4 book ai didi

C++: "vector::size_type variable"- 以这种方式声明有什么意义?

转载 作者:IT老高 更新时间:2023-10-28 22:16:40 27 4
gpt4 key购买 nike

我认为这是一个非常基本的问题,但我无法弄清楚。

我习惯于在 C++ 中使用数组,但我现在开始学习 vector 。我正在编写测试代码,遇到了一个问题。

首先,这是我制作的代码:

#include <iostream>
#include <vector>
#include <numeric>
using namespace std;

int main(){
vector<double> score(10);

for(vector<double>::size_type i=0;i<20;i++) {
cout<<"Enter marks for student #"<<i+1<<":"<<flush;
cin>>score[i];
}

double total = accumulate(score.begin(), score.end(),0);

cout<<"Total score:"<<total<<endl<<"Average score:"<<total/score.size()<<flush;

return 0;
}

for第 9 行中的句子,我声明 i作为 vector<double>::size_type 类型(因为有人告诉我这样做)。我用 int 替换了上述类型测试了代码,它工作得非常好。为什么是 vector<double>::size_type 优于 int

最佳答案

size_type 保证足够大以支持最大的 vector 大小,vector::max_size()int 不是:在许多常见平台上,int 有 32 位,而 max_size() 远大于 231 .

如果您知道大小是(并​​且将永远是)像 20 这样的小数字,那么您可以使用 int 或任何其他整数类型而不是 size_type。如果您要更改程序,例如从输入中读取大小,那么如果该值大于 INT_MAX; 将会出现可怕的错误;在使用 size_type 时,它会继续为 max_size() 以内的任何值工作,您可以轻松地对其进行测试。

关于C++: "vector<int>::size_type variable"- 以这种方式声明有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24825712/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com