C++向量与.size()结果混淆
C++ vector confusion with .size() result
使用下面的代码,我无法理解为什么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
相关文章:
- C++ 随机数生成器:尝试将结果作为向量获取,但通过制作 void 函数来执行此操作而出现错误
- C++:使用类在向量中搜索特定元素时,我得到了错误的结果
- C++向量与 C# 列表.为什么它们会产生不同的结果?
- 提升精神:将结果复制到字符串向量中
- 在向量上声明缩减,在 1 个线程上运行给出的结果与没有 openmp 的结果不同
- 向量和 for 不产生结果
- 使用迭代器对向量的C 递归初始化产生不一致的结果
- 在不同类型的向量上使用 std::remove 的不同结果
- 将多个向量(函数结果)组合到一个使用模板中
- 在向量数组中获得前五个最大的结果
- C++:清除嵌套向量会导致奇怪的结果
- 根据标准对结构向量进行排序,然后显示结果
- 将std ::计数结果推入向量
- 调整OpenCV Mat向量向量的大小时出乎意料的结果
- 排序向量不断修改数据并打印不正确的结果
- 如何在不复制的情况下将过滤向量的结果存储在另一个向量中
- 将稀疏 mat-vec-mult 的结果存储到预分配的向量中
- 向量的最后一个成员在 Rcpp 中没有给出正确的结果
- 特征:如何将"greater than"的结果(在ArrayXf上)转换为特征向量
- 结果向量错误