![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Berkut |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 16.3.2004 Репутация: нет Всего: нет |
Как отсортирвать вектор типа структура:
struct A { int x,y; } vector<A> abc; abc.sort( ????????? например по полю х. |
|||
|
||||
| mr.DUDA |
|
||||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
Есть два варианта.
Первый: сортировка с помощью единственного оператора сравнения, встраиваемого в класс (тогда нельзя будет выбрать, по какому полю сортировать и т.п.):
Второй вариант - более гибкий, с использованием 3-го аргумента функции "sort" (функциональный объект либо указатель на сравнивающую функцию):
-------------------- ![]() |
||||
|
|||||
| Berkut |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 16.3.2004 Репутация: нет Всего: нет |
Сделал вторым способом, но вот такая ошибка появляется:
error C2039: 'sort' : is not a member of 'vector<struct A,class std::allocator<struct A> >' |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
mr.DUDA
Неплохо! А алгоритм сортировки можно указать? Это сообщение отредактировал(а) sergej.z - 13.4.2004, 16:29 |
|||
|
||||
| Berkut |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 16.3.2004 Репутация: нет Всего: нет |
|
|||
|
||||
| achmed |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 150 Регистрация: 12.4.2004 Репутация: нет Всего: нет |
очевидно вы пишите abc.sort() вместо sort(abc.begin(),end()), у vector нет встроеного вектора
сортировки, вместо этого исп-ся std::sort - для для итераторов произвольного доступа |
|||
|
||||
| Berkut |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 16.3.2004 Репутация: нет Всего: нет |
|
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
Да, кстати совсем забыл напомнить - для удобства записи, в моём примере используются "сокращённые" имена STL:
Добавлено @ 18:26 2 sergej.z, Алгоритм сортировки сильно зависит от реализации STL. Это может быть как простейшая "пузырьковая" сортировка, так и более навёрнутый алгоритм. -------------------- ![]() |
|||
|
||||
| Fantasist |
|
|||
|
Лентяй ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1517 Регистрация: 24.3.2002 Репутация: 4 Всего: 41 |
Обычно это все-таки quick sort, как я думаю. C другой стороны, не сложно и свой sort написать. -------------------- Волны гасят ветер... |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |