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

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

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

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

15.04.2013, 19:13. Просмотров 630. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сортировка двух векторов (имена и возраст) (C++):

Сортировка двух векторов одновременно - C++
Всем доброго времени суток! Дано: набор отрезков, начала которых хранятся в векторе а, концы -- в векторе b. Задача:...

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

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

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

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

Сортировка векторов - C++
Пишу программу, которая считывает из файла все слова и записывает в векторы, при этом подсчитывается количество повторяющихся слов. ...

3
yoghurt92
375 / 346 / 22
Регистрация: 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 / 0
Регистрация: 17.05.2012
Сообщений: 118
15.04.2013, 19:44  [ТС] #3
Цитата Сообщение от yoghurt92 Посмотреть сообщение
strange_man, а не легче ли создать вектор из пар, где одно поле имя, второе возраст

C++
1
vector<pair<string, int> > coll;
я просто выполняю задание.
а по книге до векторов пар я еще не дошел
0
yoghurt92
375 / 346 / 22
Регистрация: 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
Привет! Вот еще темы с ответами:

Слияние двух векторов - C++
Дано два одномерных массива A и B. Помогите, пожалуйста с кодом: нужно соединить их в один массив C.

Объединение двух векторов - C++
почему не получается занести элементы в vector v ?? int main() { vector&lt;int&gt;v; vector&lt;int&gt;v1; vector&lt;int&gt;v2; for (int i...

Сумма двух векторов - C++
добрый вечер, имеется программа которая : &quot;Создать 2 вектора (массива) с 1000 элементами из случайных чисел. Сложить эти вектора....

Сортировка векторов со строковыми переменными - C++
День добрый. У меня возник вопрос, возможно ли сделать сортировку строковых переменных в массиве не в алфавитном порядке, а в заданном...


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

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

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