【发布时间】:2015-12-04 13:22:53
【问题描述】:
您好,我正在尝试创建一个非常简单的向量程序来接收整数,然后在出现提示时,用 c++ 显示最大的。但是,我对此并不陌生,并且不可避免地对此感到困惑。如上所述,它会抛出错误 'std::out_of_range' what(): _M_range_check ,并且在提示中断之前接受值。但是我不知道为什么,即使浏览了这个论坛很长一段时间。感谢您提前提供任何帮助。
#include <iostream>
#include <vector>
using namespace std;
int inputVector (vector<int>); //prototype functions
void sortVector (int,vector<int>&files);
void displayVector (vector<int>&files);
int main()
{
int vectorsize=(0);
vector <int>files;
files.reserve(10);
vectorsize=inputVector (files);
sortVector (vectorsize, files);
displayVector (files);
return 0;
}
void displayVector(vector<int>& files)
{
cout << " The largest file size is " << files.at(0);
}
int inputVector(vector<int>files)
{
int file=0;
int vectorsize;
cout << "Enter file sizes in Megabytes, file size has to be 1 or greater, hit 0 to display max value " << endl;
do
{
cin >> file;
if (file==0)
{
break;
}
else
{
files.push_back(file) ; //sends value to the vector
cout << files.size() << endl;
}
}
while (file>0);
vectorsize=files.size();
return vectorsize;
}
void sortVector(int vectorsize,vector<int>&files)
{
int maximum;
for( int j=0;j<vectorsize;j++)
{
for(int i=0;i<(vectorsize-1);i++)
{
if(files.at(i)< files.at(i+1))
{
maximum=files.at(i);
files.at(i)=files.at(i+1);
files.at(i+1)=maximum;
}
}
}
}
【问题讨论】:
-
您是否至少看过问题预览?
-
是的,因此提到了我浏览论坛。
-
不,我的意思是在 gareththegeek 把它变成至少某种形状之前,你的问题中存在的可怕格式。