Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
S1maKrdv
-1 / 0 / 1
Регистрация: 20.06.2013
Сообщений: 28
1

Сортировать вектор структур

08.06.2017, 21:53. Просмотров 863. Ответов 8

Отсортировать вектор по одному из полей, используя алгоритмы STL. По возможности использовать все перегрузки сортировки (фраза, которую я не понял).
C++
1
2
3
4
5
6
7
8
9
10
struct Dot
{
    double x,y,z;
};
 
std::vector<Dot> numbers = {
    {123.0, 48.55, 0},
    {-128.1, 0, 49.55},
    {0,134.0,-59.1}
};
Очень похожий пример, который не могу привести к решению моей задачи.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2017, 21:53
Ответы с готовыми решениями:

Сортировать коллекцию структур по двум элементам
struct compareNodesXy { bool operator()(Node6&amp;a,Node6&amp;b){ ...

Массив структур: Сортировать отчеты по фамилиям студентов
Условие: Вариант 12. Дана последовательность 16 отчетов о сдаче студентами...

Как сортировать вектор объектов по определенному полю?
Можно ли сортировать вектор объектов по определенному полю, например по имени...

Вектор структур
Здравствуйте, есть код с вектором структур #include &lt;iostream&gt; #include...

вектор структур
допустим есть структура struct human { name; age; //..... } объявим...

8
nmcf
6274 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
08.06.2017, 22:12 2
Лучший ответ Сообщение было отмечено S1maKrdv как решение

Решение

C++
1
std::sort(numbers.begin(), numbers.end(), [](const Dot &a, const Dot &b){ return a.x < b.x; });
1
S1maKrdv
-1 / 0 / 1
Регистрация: 20.06.2013
Сообщений: 28
08.06.2017, 22:30  [ТС] 3
Не подскажете как распечатать данный вектор?
0
nmcf
6274 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
08.06.2017, 22:35 4
Как обычно - циклом.
0
Antikl
с++
298 / 289 / 155
Регистрация: 15.07.2015
Сообщений: 1,553
Завершенные тесты: 6
09.06.2017, 07:19 5
Цитата Сообщение от S1maKrdv Посмотреть сообщение
Не подскажете как распечатать данный вектор?
можно итераторами распичатать вот так

C++
1
copy(numbers.begin(), numbers.end(), ostream_iterator<double, char>(cout, ""));
0
GbaLog-
Любитель чаепитий
3166 / 1472 / 465
Регистрация: 24.08.2014
Сообщений: 5,204
Записей в блоге: 1
Завершенные тесты: 2
09.06.2017, 08:33 6
Цитата Сообщение от Antikl Посмотреть сообщение
можно итераторами распичатать вот так
нельзя.
0
Antikl
с++
298 / 289 / 155
Регистрация: 15.07.2015
Сообщений: 1,553
Завершенные тесты: 6
09.06.2017, 08:35 7
Цитата Сообщение от GbaLog- Посмотреть сообщение
нельзя.
почему это?
0
Nishen
468 / 293 / 156
Регистрация: 26.02.2015
Сообщений: 1,363
Завершенные тесты: 2
09.06.2017, 08:42 8
Цитата Сообщение от Antikl Посмотреть сообщение
почему это?
Вы итератор на основе double сделали, но в программе структура, состоящая из полей типа double. Было бы правильнее ostream_iterator<Dot>(cout, " "). Но так тоже не сработает.
0
Antikl
с++
298 / 289 / 155
Регистрация: 15.07.2015
Сообщений: 1,553
Завершенные тесты: 6
09.06.2017, 08:51 9
Цитата Сообщение от Nishen Посмотреть сообщение
тоже не сработает
окей а если так?
C++
1
2
3
for (vector<Dot>::iterator it=numbers.begin();it!=numbers.end();it++){
    cout<<it->x<<"  "<<it->y<<" "<<it->z;
}
0
09.06.2017, 08:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2017, 08:51

Вектор структур в функцию
1.Необходимо считать в массив структур данный хранящиеся в файле (фамилия...

Ошибка, вектор структур
У меня есть такая структура: struct Card { int dostoinstvo; //достоинство...

Организовать вектор структур
не могу разобраться(((( имеется товар 100 PC , 120 Dress, 80 Shits. надо...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru