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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
12712266
1 / 1 / 0
Регистрация: 06.09.2014
Сообщений: 38
#1

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

25.11.2014, 20:01. Просмотров 292. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка вектора по двум полям (C++):

Сортировка вектора записей по двум полям одновременно - C++
Здравствуйте, не получается создать две разных функции перегрузки оператора &lt;:одну для сортировки первого поля класса,вторую для сортировки...

Сортировка по двум полям - C++
Здравствуйте, уважаемые! Есть такой map частотный словарь: 155 hello 74 welcome 50 car 18 red 4 digital ...

Sort vector, сортировка по двум полям структуры - C++
Поскажите как отсортировать если: struct DATA{ string fir; string sec; double sm; }; vector &lt;DATA&gt; vec; vector...

Сортировка по полям структуры - C++
Необходимо сортировать параграфы по возрастанию. Структура имеет вид: struct gloss { char term; bool flag; int nom; } ...

Сортировка в структуре по отдельным полям - C++
#include &quot;stdafx.h&quot; #include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; #include &lt;vector&gt; #include...

Сортировка в один проход по нескольким полям - C++
Добрый вечер, #include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;vector&gt; #include &lt;algorithm&gt; using namespace std; class...

1
Nosey
1348 / 399 / 107
Регистрация: 22.10.2014
Сообщений: 861
Завершенные тесты: 2
25.11.2014, 22:12 #2
C++
1
2
3
4
5
6
7
8
9
10
11
struct sort_class_mass_pos
{
    bool operator() (const st& i, const st& j)
    {
        if (i.day==j.day)
            return (i.time<j.time);
        return (i.day<j.day);
    }
} sort_objectDayTime;
 
sort (myvector.begin(), myvector.end(), sort_objectDayTime);
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.11.2014, 22:12
Привет! Вот еще темы с ответами:

Сортировка вектора по полю(Сортировка вставками) - C++
Здравствуйте! Нужно написать сортировку вектора по полю weight класса tomato. Вот класс: #pragma once #include &lt;iostream&gt; ...

Сортировка файла записей по двум критериям - C++
В общем, есть файл из записей, 4 поля, мне надо его отсортировать пирамидой, с помощью индексированного массива по 2м критериям, то есть...

Сортировка вектора - C++
Здравствуйте! Я хочу отсортировать вектор в обратном порядке, что-то похожее на: stable_sort(v.end(),v.begin()); все вроде...

сортировка вектора - C++
вектор содержит нетривиальные типы данных, (class t{int , char, struct c{...}...}) необходимо отсортировать вектор по одному из полей,...


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

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

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