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

Получить вектор age, в котором порядок элементов соответствовал бы порядку элементов вектора name - C++

Восстановить пароль Регистрация
 
Spirit370
 Аватар для Spirit370
1 / 1 / 2
Регистрация: 08.08.2013
Сообщений: 86
15.07.2014, 11:56     Получить вектор age, в котором порядок элементов соответствовал бы порядку элементов вектора name #1
Запишите пять имён в вектор vectro<string> name, затем предложите пользователю указать возраст названных людей
и запишите их в вектор vector<double> age. Затем выведете на печать пять пар
(name[i],age[i]).

Упорядочите имена (sort(name.begin(),name.end()) и выведете на
печать пары(name[i], age[i]).

Сложность заключается в том, чтобы получить вектор
age, в котором порядок следования элементов соответствовал бы порядку следо-
вания элементов вектора name.
--------------------------------------------------------
Я написал прогу, без расстановки возраста по нужным именам! Помогите это запилить!!!
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
29
30
31
32
33
34
35
36
37
38
39
#include <iostream>
#include <conio.h>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
    setlocale(LC_ALL,"Rus");
    vector<string> name;
    vector<double> age(4,0);
    name.push_back("Кирилл");
    name.push_back("Илья");
    name.push_back("Паша");
    name.push_back("Артём");
    name.push_back("Саша Грэй");
 
 
    for(int i = 0;i<4;i++)
    {
        cout << name[i] << " >> ";
        cin >> age[i];
        cout << endl;
    }
 
    sort(name.begin(),name.end());
 
    /////Как это запилить!!!//////
 
 
    cout << endl<<endl<<endl;
     for(int i = 0;i<4;++i)
     {
         cout << name[i] << "--" << age[i] << endl;
     }
    
     _getch();
     return 0;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.07.2014, 11:56     Получить вектор age, в котором порядок элементов соответствовал бы порядку элементов вектора name
Посмотрите здесь:

Заданы три вектора a(n), b(m), c(k). Вывести наименование вектора, в котором максимальна сумма четных элементов, стоящих на нечетных местах C++
Заданный вектор А, состоящий из n элементов. Переставить компоненты вектора, размещенные после самого элемента вектора А C++
Ввести два вектора целых чисел и образовать третий вектор с их общих элементов C++
C++ Bз наибольших элементов каждой строки матрицы построить вектор.найти сумму элементов этого вектора
Дана квадратная матрица A[n,n] b вектор b[n]. Определить сумму положительных элементов вектора c=b*A C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
aLarman
636 / 557 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
15.07.2014, 12:03     Получить вектор age, в котором порядок элементов соответствовал бы порядку элементов вектора name #2
Цитата Сообщение от Spirit370 Посмотреть сообщение
Помогите это запилить!!!
как вариант хранить кроме имени еще и индекс начальный(тогда зная индекс можно будет вывуести соответствующий возраст), 2оый вариант скопировать вектор, начальный отсортировать, бежать по сортированному, искать имя в начальном и выводить возраст по индексу, по которому хранится имя в начальном векторе
Spirit370
 Аватар для Spirit370
1 / 1 / 2
Регистрация: 08.08.2013
Сообщений: 86
15.07.2014, 12:17  [ТС]     Получить вектор age, в котором порядок элементов соответствовал бы порядку элементов вектора name #3
Если можно, циклик второго варианта )
aLarman
636 / 557 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
15.07.2014, 12:25     Получить вектор age, в котором порядок элементов соответствовал бы порядку элементов вектора name #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
std::vector<std::string> sortednames = name;
sort(sortednames.begin(),sortednames.end());
for(int i = 0;i<5;i++)
{
    int j =0;
    for(;j<5;j++)
    {
        if(name[j] == sortednames[i]) break;
    }
    cout << sortednames[i] << " age = "<<age[j]<<endl;
}
Добавлено через 1 минуту
и цикл
C++
1
2
3
4
5
6
for(int i = 0;i<4;i++)
    {
        cout << name[i] << " >> ";
        cin >> age[i];
        cout << endl;
    }
до 5, а не до 4
и соответственно
C++
1
vector<double> age(4,0);
не 4 и 5 элементов надо
Yandex
Объявления
15.07.2014, 12:25     Получить вектор age, в котором порядок элементов соответствовал бы порядку элементов вектора name
Ответ Создать тему
Опции темы

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