基于第一个数组元素对文件进行排序

时间:2013-12-13 14:48:05

标签: c arrays sorting

我有一个(二进制)文件,它有多个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}...

我将如何做到这一点?

2 个答案:

答案 0 :(得分:2)

  1. 将文件读入二维数组。第一维上的每个元素应该包含六个元素。
  2. 实施qsort
  3. 的比较功能
  4. 使用比较函数qsort对数组进行排序。
  5. 将数组写回文件。

答案 1 :(得分:-1)

#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;

}