Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
strange_man
10 / 10 / 2
Регистрация: 17.05.2012
Сообщений: 118
#1

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

15.04.2013, 19:13. Просмотров 656. Ответов 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;
            }
        }
    }
}
но ведь наверно это не очень хорошо в плане производительности каждый раз менять местами элементы вектора чисел?

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

Сортировка двух векторов одновременно
Всем доброго времени суток! Дано: набор отрезков, начала которых...

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

Вывести на консоль имена сотрудников, возраст которых превышает заданный (поиск в массиве структур)
Ввести в компьютер информацию о сотрудниках отдела: фамилия, имя, возраст....

Используя структуру с полями пол, ФИО, возраст, распечатать количество девушек по имени «Елена» и имена тех, кому за 19 лет
Используя структуру с полями пол, ФИО, возраст, распечатать количество девушек...

Создать класс для обработки векторов разность векторов норму векторов
Создать класс для обработки векторов разность векторов норму векторов

3
yoghurt92
375 / 346 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
15.04.2013, 19:25 #2
strange_man, а не легче ли создать вектор из пар, где одно поле имя, второе возраст

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

C++
1
vector<pair<string, int> > coll;
я просто выполняю задание.
а по книге до векторов пар я еще не дошел
0
yoghurt92
375 / 346 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
15.04.2013, 19:47 #4
strange_man, ну я сейчас читаю книгу по STL и пары даются раньше векторов, там нет ничего сложного, создай вектор пар, и можешь написать функцию для сортировки по именам, и тогда не нужно будет сортировать уже возраст, все будет сделано при сортировке по именам
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2013, 19:47

Сортировка векторов
Пишу программу, которая считывает из файла все слова и записывает в векторы,...

Объединение двух векторов
почему не получается занести элементы в vector v ?? int main() {...

Сравнение двух векторов
Всем привет. Есть задание: сравнить 2 вектора целых чисел. И выяснить не...


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

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

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