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

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

08.06.2017, 21:53. Просмотров 219. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сортировать вектор структур (C++):

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

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

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

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

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

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

8
nmcf
6243 / 5555 / 2526
Регистрация: 14.04.2014
Сообщений: 23,356
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
6243 / 5555 / 2526
Регистрация: 14.04.2014
Сообщений: 23,356
08.06.2017, 22:35 #4
Как обычно - циклом.
0
Antikl
с++
274 / 270 / 147
Регистрация: 15.07.2015
Сообщений: 1,479
Завершенные тесты: 6
09.06.2017, 07:19 #5
Цитата Сообщение от S1maKrdv Посмотреть сообщение
Не подскажете как распечатать данный вектор?
можно итераторами распичатать вот так

C++
1
copy(numbers.begin(), numbers.end(), ostream_iterator<double, char>(cout, ""));
0
GbaLog-
Любитель чаепитий
3156 / 1462 / 462
Регистрация: 24.08.2014
Сообщений: 5,180
Записей в блоге: 1
Завершенные тесты: 2
09.06.2017, 08:33 #6
Цитата Сообщение от Antikl Посмотреть сообщение
можно итераторами распичатать вот так
нельзя.
0
Antikl
с++
274 / 270 / 147
Регистрация: 15.07.2015
Сообщений: 1,479
Завершенные тесты: 6
09.06.2017, 08:35 #7
Цитата Сообщение от GbaLog- Посмотреть сообщение
нельзя.
почему это?
0
Nishen
457 / 280 / 154
Регистрация: 26.02.2015
Сообщений: 1,324
Завершенные тесты: 2
09.06.2017, 08:42 #8
Цитата Сообщение от Antikl Посмотреть сообщение
почему это?
Вы итератор на основе double сделали, но в программе структура, состоящая из полей типа double. Было бы правильнее ostream_iterator<Dot>(cout, " "). Но так тоже не сработает.
0
Antikl
с++
274 / 270 / 147
Регистрация: 15.07.2015
Сообщений: 1,479
Завершенные тесты: 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
Привет! Вот еще темы с решениями:

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

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

Вектор (не из STL) из структур
привет Ребят, задача была поставлена так: нужно сделать прогу, которая бы...

Вектор массива структур
struct RectangleStruct { int width; int length; }; int main () { ...


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

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

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