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

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

Войти
Регистрация
Восстановить пароль
 
strange_man
9 / 9 / 0
Регистрация: 17.05.2012
Сообщений: 117
#1

Сортировка двух векторов (имена и возраст) - C++

15.04.2013, 19:13. Просмотров 502. Ответов 3
Метки нет (Все метки)

Имеется вектор строк, которые обозначают имена, и вектор чисел, означающий их возрасты.

Нужно написать функцию sort() которая бы сортировала имена в алфавитном списке, и потом соответственно этим именам размещала возрасты участников.

я написал такую функцию
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void Name_pairs::sort(vector<string>& a, vector<double>& b)
{
    for (int j = a.size() - 1; j >= 2; j--)
    {
        for (int i = 0; i < j; i++)
        {
            if (a[i] > a[i+1])
            {
                string temp_st = a[i];
                a[i] = a[i+1];
                a[i+1] = temp_st;
 
                double temp_dbl = b[i];
                b[i] = b[i+1];
                b[i+1] = temp_dbl;
            }
        }
    }
}
но ведь наверно это не очень хорошо в плане производительности каждый раз менять местами элементы вектора чисел?

подскажите, а лучше намекните, можно ли сделать это более изящно? или сойдет?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2013, 19:13     Сортировка двух векторов (имена и возраст)
Посмотрите здесь:

Сортировка векторов со строковыми переменными C++
C++ Вычисление суммы двух векторов
Используя структуру с полями пол, ФИО, возраст, распечатать количество девушек по имени «Елена» и имена тех, кому за 19 лет C++
C++ Слияние двух векторов
C++ Создать класс для обработки векторов разность векторов норму векторов
C++ Сумма двух векторов
C++ Сортировка векторов
Генерация текста из двух векторов C++
C++ Объединение двух векторов
C++ Сравнение длины двух векторов
C++ Сортировка двух векторов одновременно
Вывести на консоль имена сотрудников, возраст которых превышает заданный (поиск в массиве структур) C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
15.04.2013, 19:25     Сортировка двух векторов (имена и возраст) #2
strange_man, а не легче ли создать вектор из пар, где одно поле имя, второе возраст

C++
1
vector<pair<string, int> > coll;
strange_man
9 / 9 / 0
Регистрация: 17.05.2012
Сообщений: 117
15.04.2013, 19:44  [ТС]     Сортировка двух векторов (имена и возраст) #3
Цитата Сообщение от yoghurt92 Посмотреть сообщение
strange_man, а не легче ли создать вектор из пар, где одно поле имя, второе возраст

C++
1
vector<pair<string, int> > coll;
я просто выполняю задание.
а по книге до векторов пар я еще не дошел
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
15.04.2013, 19:47     Сортировка двух векторов (имена и возраст) #4
strange_man, ну я сейчас читаю книгу по STL и пары даются раньше векторов, там нет ничего сложного, создай вектор пар, и можешь написать функцию для сортировки по именам, и тогда не нужно будет сортировать уже возраст, все будет сделано при сортировке по именам
Yandex
Объявления
15.04.2013, 19:47     Сортировка двух векторов (имена и возраст)
Ответ Создать тему
Опции темы

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