C++向量与.size()结果混淆

C++ vector confusion with .size() result

本文关键字:结果 向量 size C++      更新时间:2023-10-16

使用下面的代码,我无法理解为什么numbs[numbs.size()]没有给我一个适当的响应。我假设它会给我排序向量中的最后一个项目,在这种情况下,它应该是最大的。然而,cout << numbs[numbs.size()]吐出垃圾,例如

输入了数字1。[1] ,最小:1。向量中有1个元素1.36617e-231是最大的

#include <iostream>
#include <cmath>
#include <vector>
#include <cstdlib>
#include <algorithm>
using namespace std;
int main()
{
double number_input = 0.0;
string unit = " ";
vector<double> numbs;
while (cin >> number_input)
{
    numbs.push_back(number_input);
    cout << "Number " << number_input << "entered.n";
    for(int i = 0; i < numbs.size(); ++i)
    {
        cout << "[" << numbs[i] << "],";
    }
    sort(numbs.begin(),numbs.end());
    cout << "smallest: " << numbs[0] << endl;
    cout << "there are " << numbs.size() << " elements in the vector.n";
    cout << numbs[numbs.size()] << " is the largest.";
}
return 0;
}

向量中的索引是基于0的,就像数组一样。所以向量v中的最后一个值是v[ v.size() - 1 ],假设v.size() > 0