Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2013, 23:08   #1
vika_v
Новичок
Джуниор
 
Регистрация: 21.11.2012
Сообщений: 2
По умолчанию vector и struct

Доброго вечора.
У меня есть такая задача.
Вводим роли (string) и приоритет для етой роли (int). Таких повторов может быть n-разов. Потом вводим имена усторйств и роли для них из вышеперечисленные ролей. На конец должны вивести устойства с отсортироваными ролями за приоритетом.
Вот что у меня уже получилось, но я никак не могу придумать как ето повязать и отсортовать.
# include <vector>
# include <algorithm>
# include <iostream>
#include <string>
using namespace std;

struct structura1
{
string name;
string role;
int priority;
};
void print1(const structura1 &obj)
{
cout<<obj.name<<endl;
cout<<obj.role<<endl;
cout<<obj.priority<<endl;
}
void print2(const structura1 &obj)
{
cout<<obj.name<<endl;
cout<<obj.role<<endl;
//cout<<obj.priority<<endl;
}
int main()
{
char a = ' ';
vector<structura1>V;
vector<structura1>Q;
structura1 temp1;
do
{
temp1.name=' ';
cout<<"Input the role"<<'\n';
cin>>temp1.role;
cout<<"Input the pririty"<<'\n';
cin>>temp1.priority;
cout<<"If you want continue enter Y, else enter N"<<'\n';
cin>>a;
V.push_back(temp1);
}
while (a != 'N');
for_each(V.begin(),V.end(),print1);

do
{

cout<<"Input the name of device"<<'\n';
cin>>temp1.name;
cout<<"Input the role"<<'\n';
cin>>temp1.role;
cout<<"If you want continue enter Y, else enter N"<<'\n';
cin>>a;
Q.push_back(temp1);
}
while (a != 'N');
for_each(Q.begin(),Q.end(),print2);

cout<<V.size();
return 0;
}
vika_v вне форума Ответить с цитированием
Старый 14.03.2013, 00:02   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

vika_v

я никак не могу придумать как ето повязать и отсортовать.

повязывают преступников (((:

сортируйте в порядке важности полей, примерно так:

Код:
bool operator<(const structura1& s1, const structura1& s2)
{
   if (s1.role == s2.role)
      return s1.priority < s2.priority;
   return s1.role < s2.role;
}

std::vector<structura1> v;
...

std::sort(v.begin(), v.end());
Rififi вне форума Ответить с цитированием
Старый 14.03.2013, 00:55   #3
vika_v
Новичок
Джуниор
 
Регистрация: 21.11.2012
Сообщений: 2
По умолчанию

а как правильно считать чтоб програма понемала что для одного устройства может быть несколько ролей?
vika_v вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ Boost - vector<path> to vector<string> frommars Общие вопросы C/C++ 0 04.02.2013 21:19
struct Gtnz8 Общие вопросы C/C++ 7 14.09.2012 08:59
struct Gtnz8 Общие вопросы C/C++ 4 17.08.2012 15:41
struct C++ PointBreak Visual C++ 0 12.06.2012 11:58
Struct mansp Общие вопросы C/C++ 4 05.12.2010 20:00