у меня есть 2-й вектор как vector < vector < coordinates > > v( points);
где класс координат:
class coordinate{
public :
int x;
int y;
coordinate(){
x=0;
y=0;
}
};
и точки равняются 20. как отсортировать отдельные векторы v [я] на основе v [я] .size (), т.е. на основе количества объектов координат, продвинутых в v [я].???
, создайте функцию, в которой вы можете использовать любые атрибуты для сравнения объектов, а затем использовать алгоритм сортировки STL () для сортировки контейнера.
перегружают операцию <этого класса и делают ее такой же, как указанная выше функция. Затем вы можете использовать функцию sort (), предоставляемую контейнерами STL (например, список STL).
1) создать функцию, которая сравнивает два вектора по размеру:
bool less_vectors(const vector& a,const vector& b) {
return a.size() < b.size();
}
2) сортировать по нему
sort(v.begin(),v.end(),less_vectors);