Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Показать сообщение отдельно
12712266
1 / 1 / 0
Регистрация: 06.09.2014
Сообщений: 38

Сортировка вектора по двум полям

25.11.2014, 20:01. Просмотров 342. Ответов 1
Метки (Все метки)

Вектор состоит из структуры с двумя полями: день недели и время. Нужно отсортировать так, чтобы сначала в векторе хранились структуры, у которых день недели понедельник, потом, где день недели вторник и тд. Но если встречаются структуры, где день недели совпадает, надо отсортировать по времени.
В интернете нашла алгоритм, похожий на то, что мне надо, но не очень понимаю, помогите, пожалуйста

C++
1
2
3
4
5
6
7
8
9
10
11
struct sort_class_mass_pos
{
    bool operator() (MyObject i, MyObject j)
    {
        if (i.m_fMass==j.m_fMass)
            return (i.m_fPosX<j.m_fPosX);
        return (i.m_fMass<j.m_fMass);
    }
} sort_objectMassPos;
 
sort (myvector.begin(), myvector.end(), sort_objectMassPos);
struct st{
int time;
int day;
};

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
void input(vector <st> & base){
    st str;
    cout << "Выберите день недели " << endl;
    cout << "0 - Monday" << endl;
    cout << "1 - Tuesday" << endl;
    cout << "2 - Wednesday" << endl;
    cout << "3 - Thursday" << endl;
    cout << "4 - Friday" << endl;
    cout << "5 - Saturday" << endl;
    cin >> str.day;
    cout << "Выберите время " << endl;
    cout << "0: 8:00-9:20 " << endl;
    cout << "1: 9:30-10:50 " << endl;
    cout << "2: 11:00-12:20 " << endl;
    cout << "3: 12:40-14:00 " << endl;
    cout << "4: 14:20-15:40 " << endl;
    cout << "5: 15:50-17:10 " << endl;
    cin >> str.time;
    base.push_back(str);
}
 
int main(){
    setlocale(LC_ALL, "Russian");
    vector <st> myvector;
    input(myvector);
    system("pause");
    return 0;
}


Вернуться к обсуждению:
Сортировка вектора по двум полям
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2014, 20:01
Готовые ответы и решения:

Сортировка вектора записей по двум полям одновременно
Здравствуйте, не получается создать две разных функции перегрузки оператора...

Сортировка по двум полям
Здравствуйте, уважаемые! Есть такой map частотный словарь: 155 hello 74 ...

Sort vector, сортировка по двум полям структуры
Поскажите как отсортировать если: struct DATA{ string fir; string...

Сортировка по полям структуры
Необходимо сортировать параграфы по возрастанию. Структура имеет вид: struct...

Сортировка структуры по полям
Мне нужно было сделать базу данных контактов и сделать сортировку по фамилиям и...

1
Другие темы раздела
C++ Чтение текста из файла http://www.cyberforum.ru/cpp-beginners/thread1310856.html
Здравствуйте. У меня есть задание по С++ и один из его аспектов - это поиск программой текстового файла внутри папки с проектом VS2013 и предложение ввести имя желаемого файла в командной строке....
C++ Вернуть двухмерный вектор с класса? Как правильно вернуть матрицу созданною через вектора из класса, в котором она созданная? вот мой код: #include <iostream> #include <vector> using namespace std; int n=10, m=10; class MATRIX{... http://www.cyberforum.ru/cpp-beginners/thread1310853.html
Кому интересно писать задачки на Dev-с++, не проходим мимо с меня +) C++
Масив X(n) розбитий на m фрагментів. У цілочисельному масиві K(m) зберіга*ються довжини відповідних фрагментів (усі k різнi, їх сума дорівнює n). Впорядкувати масив K за зростанням, переставивши...
C++ Выделение диапазона в Excel
Всем доброго времени суток. Есть программа,которая копирует данные с 1 книги экселя в другую,с определенными параметрами,форматом,проверкой и тд. Столкнулся с проблемой форматирования ячеек(и...
C++ Разработать программу для вычисления определенного интеграла методом трапеций http://www.cyberforum.ru/cpp-beginners/thread1310841.html
Разработать программу для вычисления определенного интеграла методом трапеций для функции типа: y=a*{e}^{b*sin(c*x)}+d . Коэффициенты a, b, c, d и границы интервала интегрирования считываются с...
C++ Стек и очередь C++ Система состоит из трех процессоров P1, P2, P3, очереди F, стека S и распределителя задач R. В систему поступают запросы на выполнение задач трёх типов – T1, T2 и T3, каждая для своего процессора. ... подробнее
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru