基于大小()排序向量

时间:2010-03-04 11:29:55

标签: c++ sorting vector

我有一个像vector < vector < coordinates > > v( points);这样的二维矢量,坐标类是:

class coordinate{
    public :
    int x;
    int y;
    coordinate(){
        x=0;
        y=0;
    }

};

并且积分是20。 如何基于v [i] .size()对各个向量v [i]进行排序,即基于在v [i]中推送的坐标对象的数量。 ???

2 个答案:

答案 0 :(得分:14)

1)创建一个基于大小比较两个向量的函数:

bool less_vectors(const vector& a,const vector& b) {
   return a.size() < b.size();
}

2)用它排序

sort(v.begin(),v.end(),less_vectors);

答案 1 :(得分:0)

  1. 创建一个函数,您可以使用任何属性来比较对象,然后使用STL sort()算法对容器进行排序。

  2. 重载&lt;该类的操作并使其与上述函数相同。然后你可以使用STL容器提供的sort()函数(比如STL列表)。