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

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

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

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

15.04.2013, 19:13. Просмотров 527. Ответов 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++
Всем доброго времени суток! Дано: набор отрезков, начала которых хранятся в векторе а, концы -- в векторе b. Задача:...

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

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

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
Сообщений: 118
15.04.2013, 19:44  [ТС]     Сортировка двух векторов (имена и возраст) #3
Цитата Сообщение от yoghurt92 Посмотреть сообщение
strange_man, а не легче ли создать вектор из пар, где одно поле имя, второе возраст

C++
1
vector<pair<string, int> > coll;
я просто выполняю задание.
а по книге до векторов пар я еще не дошел
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2013, 19:47     Сортировка двух векторов (имена и возраст)
Еще ссылки по теме:

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

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

Генерация текста из двух векторов - C++
Ребят, помогите, если можете. Есть кусок программы, в которой создаётся две строки, записываются в вектор(каждая в свой), а потом нужно...

Сравнение длины двух векторов - C++
Как мне правильно сравнить величины векторов??? Длину я вычислил, сравнить не могу)) class Vector { float x, y, z; public: ...


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

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

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