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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Чтение текста из файла http://www.cyberforum.ru/cpp-beginners/thread1310856.html
Здравствуйте. У меня есть задание по С++ и один из его аспектов - это поиск программой текстового файла внутри папки с проектом VS2013 и предложение ввести имя желаемого файла в командной строке. Если программа находит этот файл - она читает из него текст и все хорошо. Если нет - то выдает "Error". По идеи, все уже готово, но есть одно НО, которое я не учел. Это запрещенные имена файлов (такие...
C++ Вернуть двухмерный вектор с класса? Как правильно вернуть матрицу созданною через вектора из класса, в котором она созданная? вот мой код: #include <iostream> #include <vector> using namespace std; int n=10, m=10; class MATRIX{ private: vector <vector<int> > Matrix; public: http://www.cyberforum.ru/cpp-beginners/thread1310853.html
Кому интересно писать задачки на Dev-с++, не проходим мимо с меня +) C++
Масив X(n) розбитий на m фрагментів. У цілочисельному масиві K(m) зберіга*ються довжини відповідних фрагментів (усі k різнi, їх сума дорівнює n). Впорядкувати масив K за зростанням, переставивши відповідні фрагменти в масиві X.
C++ Выделение диапазона в Excel
Всем доброго времени суток. Есть программа,которая копирует данные с 1 книги экселя в другую,с определенными параметрами,форматом,проверкой и тд. Столкнулся с проблемой форматирования ячеек(и именно установкой границ ячеек) в скопированной книге. Форматирую верхнюю строку листа: void Style_Header (Excel::_WorksheetPtr NewSheet) { NewSheet->Range->RowHeight = 53;//высота верхней строки ...
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, каждая для своего процессора. Поступающие запросы ставятся в очередь. Если в начале очереди находится задача Ti и процессор Pi свободен, то распределитель R ставит задачу на выполнение в процессор Pi, а если процессор Pi занят,... подробнее

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

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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru