сортировка векторов по размеру () - PullRequest
5 голосов
/ 04 марта 2010

У меня есть 2-й вектор, например vector < vector < coordinates > > v( points);, где класс координат:

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

};

и очков 20. как отсортировать отдельные векторы v [i] на основе v [i] .size (), то есть на основе количества объектов координат, помещенных в v [i]. ???

Ответы [ 2 ]

14 голосов
/ 04 марта 2010

1) создать функцию, которая сравнивает два вектора по размеру:

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

2) сортировать с ним

sort(v.begin(),v.end(),less_vectors);
0 голосов
/ 04 марта 2010
  1. создать функцию, в которой вы можете использовать любые атрибуты для сравнения объектов, а затем использовать алгоритм STL sort () для сортировки контейнера.

  2. перегрузите <операцию этого класса и сделайте ее такой же, как в приведенной выше функции. Затем вы можете использовать функцию sort (), предоставляемую контейнерами STL (например, список STL). </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...