我有一个包含6个元素数组的多个条目的(二进制)文件。所以文件的结构是这样的:基于第一个数组元素对文件进行排序
{1 2 12 18 22 0} {11 17 20 19 20 7} {3 9 18 24 0 9}...
其中我已经围绕形成一个数组的元素括号。我想仅基于每个阵列的第一个元素对文件进行排序,因此排序后的文件应为
{1 2 12 18 22 0} {3 9 18 24 0 9} {11 17 20 19 20 7}...
我该如何去做这件事?
我有一个包含6个元素数组的多个条目的(二进制)文件。所以文件的结构是这样的:基于第一个数组元素对文件进行排序
{1 2 12 18 22 0} {11 17 20 19 20 7} {3 9 18 24 0 9}...
其中我已经围绕形成一个数组的元素括号。我想仅基于每个阵列的第一个元素对文件进行排序,因此排序后的文件应为
{1 2 12 18 22 0} {3 9 18 24 0 9} {11 17 20 19 20 7}...
我该如何去做这件事?
qsort
的比较功能。使用qsort
与您的比较函数对数组进行排序。#include<stdio.h>
#include<vector>
#include<algorithm>
#include<iostream>
using namespace std;
int main() {
vector < vector<int> > v;
vector <int> t;
t.push_back(4);
t.push_back(5);
t.push_back(6);
v.push_back(t);
t.clear();
t.push_back(1);
t.push_back(2);
t.push_back(3);
v.push_back(t);
sort(v.begin(),v.end());
for (int i = 0; i < v.size(); i++){
for (int j = 0; j < v[i].size(); j++){
cout << v[i][j] << " ";
}
cout << endl;
}
return 0;
}
这个问题被标记为C;这个答案是用C++编写的。它显示了语言之间的差异,但没有回答这个问题。 –
你知道每个元素是如何序列化的(即表示为一个字节序列)吗?例如,每个元素不大于255并存储为单个字节(即文件总大小可以被6整除)? –
@FrerichRaabe - 每个元素是一个4字节的整数。 – Kitchi