本人需要对以下一段数字先按X轴大小排列,在按照Y轴坐标的大小进行排序,请问怎么编写代码?请给位大神赐教
X轴 331.1789
Y轴 27.4097
Z轴 104.5347
X轴 312.3313
Y轴 16.4205
Z轴 104.1986
X轴 331.1720
Y轴 38.4278
Z轴 103.1351
X轴 312.2913
Y轴 43.9464
Z轴 100.5957
X轴 331.1754
Y轴 32.9154
Z轴 103.8131
MFC

解决方案 »

  1.   

    先按x轴再按y轴
    是以最后结果为准么?
    那直接按y轴就好了!sort stl的函数
    template<class RandomAccessIterator>
       void sort(
          RandomAccessIterator _First, 
          RandomAccessIterator _Last
       );
      

  2.   

    CPoint  对象  实现operator <  里面先比较x再比较y  最后用map存CPoint对象   存完  map里面已经按你的要求排好序了   你要用iterator顺序读取就可以
      

  3.   

    // alg_sort.cpp
    // compile with: /EHsc
    #include <vector>
    #include <algorithm>
    #include <functional>      // For greater<int>( )
    #include <iostream>// Return whether first element is greater than the second
    bool UDgreater ( int elem1, int elem2 )
    {
       return elem1 > elem2;
    }int main( )
    {
       using namespace std;
       vector <int> v1;
       vector <int>::iterator Iter1;   int i;
       for ( i = 0 ; i <= 5 ; i++ )
       {
          v1.push_back( 2 * i );
       }   int ii;
       for ( ii = 0 ; ii <= 5 ; ii++ )
       {
          v1.push_back( 2 * ii + 1 );
       }   cout << "Original vector v1 = ( " ;
       for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
          cout << *Iter1 << " ";
       cout << ")" << endl;   sort( v1.begin( ), v1.end( ) );
       cout << "Sorted vector v1 = ( " ;
       for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
          cout << *Iter1 << " ";
       cout << ")" << endl;   // To sort in descending order. specify binary predicate
       sort( v1.begin( ), v1.end( ), greater<int>( ) );
       cout << "Resorted (greater) vector v1 = ( " ;
       for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
          cout << *Iter1 << " ";
       cout << ")" << endl;   // A user-defined (UD) binary predicate can also be used
       sort( v1.begin( ), v1.end( ), UDgreater );
       cout << "Resorted (UDgreater) vector v1 = ( " ;
       for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
          cout << *Iter1 << " ";
       cout << ")" << endl;
    }
      

  4.   

    我想要用MFC编辑的。数据是在编辑窗口里,然后按一个按钮就实现排序功能,我的数据比较多