Форум программистов, компьютерный форум CyberForum.ru

Сортировка, не изменяя структуру - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дана последовательность чисел. Выяснить , сколько раз в ней встречается максимальное число. http://www.cyberforum.ru/cpp-beginners/thread561961.html
Дана последовательность чисел. Выяснить , сколько раз в ней встречается максимальное число.
C++ Структура TRAIN(считывание из файла) Знаю что много тем на эту структуру TRAIN, но я не нашел именно эту программу.(помогите доработать эту программу) Нужно: В файле содержится информация о железнодорожном расписании (номер поезда, время прибытия на станция, время отправления название станции ). Разработать структуру поезд, соответствующую формата файла. Создать массив структур. Найти поезда проходящий через макс число станций. ... http://www.cyberforum.ru/cpp-beginners/thread561948.html
C++ Массив: вставить число k вводимое с клавиатуры после первого отрицательного элемента двумерного массива
нужно втавить число k вводимое с клавиатуры после первого отрицательного элемента двумерного массива.Учусть ситуацию если один отрицательный элемент или нет вообще отрицат элементов вот помогите испраить ошибки или дописать программу пожайлуста #include<iostream.h> #include<stdlib.h> #define n 10 main() {randomize(); int a,p,i,k,x; cout<<"enter massiv"<<endl; for (i=0;i<n;i++)
C++ программа, которая считывает текст из файла
Написать программу, которая считывает текст из файла и выводит на экран толь* ко предложения, содержащие заданное с клавиатуры слово. #include <iostream> #include <fstream> #include <string> using namespace std; int main()
C++ Описать и вывести массив http://www.cyberforum.ru/cpp-beginners/thread561916.html
Описать и вывести массив, содержащий 10 записей следующей структуры: фамилия, возраст, № студенческого билета, средняя оценка за последнюю сессию Вывести массив в табличном виде. выдает ошибку и как вывести массив в табличном виде помогите пожалуйста #include<stdio.h> #include<conio.h> #include<string.h> void main() { struct student
C++ Написать программу для вычисления площади выпуклого Написать программу для вычисления площади выпуклого четырехугольника ABCD, заданного длинами сторон AB, BC, CD, DA и диагональю АС. Диагональ делит четырехугольник на два треугольника площадь каждого треугольника вычислять используя функцию(применимая формула Герона) подробнее

Показать сообщение отдельно
Nick Alte
Эксперт С++
1605 / 997 / 118
Регистрация: 27.09.2009
Сообщений: 1,923
Завершенные тесты: 1
30.04.2012, 12:43     Сортировка, не изменяя структуру
Цитата Сообщение от nake Посмотреть сообщение
а потом как упорядочить элементы массива, если мне нужно их упорядочить исходя из элементов структуры?
Либо самостоятельно написать процедуру сортировки, которая сортирует порядковые номера, сравнивая исходные данные под этими номерами, либо воспользоваться стандартным std::sort с собственным предикатом сравнения. Второе проще, но требует определённых знаний:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
struct Struct {
    int foo;
    float bar;  // Сортировка производится по этому полю
    friend operator << (std::ostream&, const Struct&);  // стандартный вывод
};
 
std::vector<size_t> sortIndex(const std::vector<Struct>& array)
{
    std::vector<size_t> index(array.size());  // вектор порядковых номеров имеет тот же размер, что и массив
    std::iota(index.begin(), index.end(), 0);  // заполнение порядковыми номерами
    std::sort(index.begin(), index.end(), [&array] (size_t idx1, size_t idx2) {return array[idx1].bar < array[idx2].bar;});
    return index;
}
 
void PrintSortedArray(const std::vector<Struct>& array)  // Распечатать упорядоченный массив
{
    const std::vector<size_t> index = sortIndex(array);
    std::for_each(index.begin(), index.end(), [&array] (size_t idx) -> void {std::cout << idx << " - " << array[idx] << std::endl;});
}
 
Текущее время: 19:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru