C++ 面临cpp中排序函数的问题
尝试对动态数组sum_数组进行排序,但函数不起作用。如果我不将数组大小设置为1,我的循环也会自动终止。我的声明可能有问题吗C++ 面临cpp中排序函数的问题,c++,sorting,C++,Sorting,尝试对动态数组sum_数组进行排序,但函数不起作用。如果我不将数组大小设置为1,我的循环也会自动终止。我的声明可能有问题吗 **#include<bits/stdc++.h> #include<algorithm> #include<vector> using namespace std; int main(){ vector <int> sum_array (1); int n; cin>>n; int sum,
**#include<bits/stdc++.h>
#include<algorithm>
#include<vector>
using namespace std;
int main(){
vector <int> sum_array (1);
int n;
cin>>n;
int sum,marks;
for (int i = 0; i < 5; i++) {
cout<<"turn now is ="<<i<<endl;
sum=0;
for (int k = 0; k < (n-1); k++) {
cin>>marks;
sum=sum+marks;
cout<<"sum="<<sum<<endl;
}
sum_array[i]=sum;
}
for (int i = 0; i < 5; i++) {
cout<<sum_array[i]<<endl;
}
sort(sum_array.begin(),sum_array.end());
cout<<"after"<<endl;
for (int i = 0; i < 5; i++) {
cout<<sum_array[i]<<endl;
}
return 0;
}**
**#包括
#包括
#包括
使用名称空间std;
int main(){
向量和_数组(1);
int n;
cin>>n;
整数和,马克;
对于(int i=0;i<5;i++){
cout您正在创建一个整数向量:
std::vector<int> sum_array(1);
并将元素推入总和数组中
:
sum_array.push_back(sum);
您正在创建一个整数的向量:
std::vector<int> sum_array(1);
并将元素推入总和数组中
:
sum_array.push_back(sum);
您可以使用一个元素创建sum\u数组
,然后使用i
在范围内设置sum\u数组[i]
(0, 5)没有调整大小。这是未定义的行为。它也意味着“代码>排序< /COD>只考虑一个项目。<代码> SUMYARAMECTON/CODE >给出了一个元素的大小,但是元素被分配为代码< 0 > /代码>到代码> 4 /代码>。分配这样的元素不会隐式地调整大小。相反,您的代码具有未定义的行为。ught vector是一个动态数组,它可以自己折叠起来。如果它向我显示从0到4的元素,这意味着它们是通过调整数组大小来拟合的,那么为什么在我尝试对它们进行排序时它是未定义的。我如何修复它?不要#include
,你用一个元素创建sum_数组
,然后设置sum_数组[i]
且i
在范围内(0, 5)没有调整大小。这是未定义的行为。它也意味着“代码>排序< /COD>只考虑一个项目。<代码> SUMYARAMECTON/CODE >给出了一个元素的大小,但是元素被分配为代码< 0 > /代码>到代码> 4 /代码>。分配这样的元素不会隐式地调整大小。相反,您的代码具有未定义的行为。ught vector是一个动态数组,它可以自行折叠。如果它向我显示0到4的元素,这意味着它们是通过调整数组大小来拟合的,那么为什么在我尝试对它们进行排序时它是未定义的。如何修复它?不要包含
,