【发布时间】:2019-10-16 12:04:52
【问题描述】:
在这段代码中,我正在创建一个结构数组并尝试根据“arr_time”字段对结构数组进行排序。我在如何通过函数 sort_process() 中的引用传递结构数组时遇到问题。
#include<iostream>
using namespace std;
struct process {
public:
int p_id,arr_time,burst_time,comp_time;
};
void sort_process( process x[],int len)
{
int i,j;
process temp;
for(i=0;i<len;i++)
{
for(j=0;j<len-1;j++)
{
if(x[j].arr_time > x[j+1].arr_time)
{
temp = x[j];
x[j] = x[j+1];
x[j+1] = temp;
}
}
}
}
int main()
{
int n,i=0,j=0,k=0,t=0,flag;
cout<<"\n Enter number of processes : ";
cin>>n;
process p[n];
for(i=0;i<n;i++)
initialize(p[i]);
sort_process(p,n);
return 0;
}
【问题讨论】:
-
需要语言标签
-
通过引用将其作为任何数组传递:
void sort_process( process (&)[len])。len必须是cnostexpr。 -
顺便说一下,
process p[n];不是标准的 C++。您必须提供恒定大小或更好的大小:如果您需要动态大小的数组,请使用std::vector。
标签: c++ arrays reference structure