对变量上的标准构造进行排序
Sorting a standard array of structs on a variable
可能的重复:
C 与结构排序
我正在尝试弄清楚如何在阵列中保存的结构中的特定变量上分类构造数组。这是我的代码:
struct Process{
int pid;
int burst;
int arrival;
};
int main(int argc, char *argv[]){
// The number of processes
int numProcesses = 3;
//Create an array that holds 10 Process structs
Process *arrayOfProcesses = new Process[numProcesses];
// Puts values in each pid, burst, and arrival
arrayOfProcesses[0].pid = 0;
arrayOfProcesses[0].burst = 8;
arrayOfProcesses[0].arrival = 2;
arrayOfProcesses[1].pid = 1;
arrayOfProcesses[1].burst = 12;
arrayOfProcesses[1].arrival = 3;
arrayOfProcesses[2].pid = 2;
arrayOfProcesses[2].burst = 4;
arrayOfProcesses[2].arrival = 1;
// Sort the array based on the arrival time
// Help! :)
}
我真的希望能够在到达时间中对代码中的数组进行分类。我简化了我的代码,以使您对我要完成的工作有了一般的了解。在我的实际代码中,该数组是由文件读取的信息动态填充的。我知道使用列表甚至向量是更好的选择,但是我决心使用数组来弄清楚这一点。
对此进行分类的任何帮助将不胜感激!:)
使用标准<algorithm>
标头使用sort
:
std::sort(arrayOfProcesses, arrayOfProcesses+numProcesses, [](Process const &a, Process const &b){ return a.arrival < b.arrival; });
您仍然可以通过添加比较函数使用STL排序算法的数组:
#include <algorithm>
bool operator<(const Process& lhs, const Process& rhs)
{
return lhs.pid < rhs.pid;
}
sort(arrayOfProcesses, arrayOfProcesses + numProcesses);
相关文章:
- 在C++标准中,语法选项的表示中没有隐含的排序,这种说法正确吗
- 标准::map键类型的严格弱排序概念
- 如果要求比较器是严格的总排序,而不仅仅是严格的弱排序,C++标准算法会更快吗?
- 解释标准库排序函数C++的比较谓词的工作原理?
- 如何将标准::矢量插入具有自定义排序功能的 std::set 中
- 如何按降序对标准数组进行排序 - C++ 11.
- 如何在不使用标准算法的情况下在排序向量中添加 c 元素?
- 有没有办法为集合指定不同的唯一性和排序标准
- 使用标准库根据一个数组对两个数组进行排序(避免复制步骤)
- 是否存在用于按以下方式对两个范围进行排序和分区的标准算法?
- 根据标准对结构向量进行排序,然后显示结果
- 使用标准库对矢量的矢量进行排序,并计算唯一出现的频率
- 如何在c++中使用两个排序标准(对于一组对)创建有序集
- 是否按多个标准进行快速排序
- 对标准库容器类型进行排序的static_assert() 的优雅方式
- 对变量上的标准构造进行排序
- 排序标准::映射<字符串,双精度>
- 排序这些单词的排序标准
- 具有多个排序标准的对象的排序向量
- C++ 标准::排序 标准::矢量<Object> - 错误太多