![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Познающий |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 2.6.2009 Репутация: нет Всего: нет |
Доброго времени суток!
Тут проблемка одна, нужно написать программу с использованием stl которая отображает таблицу чемпионата по футболу. В общем структура есть, но проблема в том, что критерий отборки должен быть именно less. Я написал свой критерий Cless но препод этого не примет просто. Вот сама прога #include <iostream> #include <vector> #include <functional> #include <fstream> #include <algorithm> #include <queue> using namespace std; struct Fteam{ int goal; char* name; friend ostream operator <<(ostream&out,Fteam a){ out<<a.name<<" "<<a.goal; return out; } friend istream operator >>(istream&in,Fteam a){ in>>a.goal; in>>a.name; return in; } bool operator<(Fteam&right){ return (goal<right.goal);// return false; //else return true; } Fteam(int g,char*nm){ goal=g; name=nm; } bool operator() (Fteam x,Fteam y){ return (x<y); } Fteam(){name=0;goal=0;} }; }; void main(){ Fteam a(1,"one"); priority_queue <Fteam,vector<Fteam>,less<Fteam> > q; q.push(a); int cnt=1; do{ a=q.top(); cout<<cnt<<" place is "<<a<<"\n";cnt++; q.pop(); }while ( !q.empty() ); } Вот... Ругается виз 6,0 на оператор < и вроде бы как на () include\functional(86) : error C2678: binary '<' : no operator defined which takes a left-hand operand of type 'const struct Fteam' (or there is no acceptable conversion) \functional(86) : while compiling class-template member function 'bool __thiscall std::less<struct Fteam>::operator ()(const struct Fteam &,const struct Fteam &) const' Люди, поясните, что не так |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
мутно как-то все..
свой less писать не надо, просто специализировать и все вот так
|
|||
|
||||
| Познающий |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 2.6.2009 Репутация: нет Всего: нет |
Работает!!
))) ё-моё) это я еще кое-что выкинул из кода )) Ну там...пару закоментированных перегруженных операторов... Вот, думаю, как отточить стиль правильного и красивого программирования)) А то видел у одногрупника код, такая красота))
А можно тут поподробнее?))) Как у компилятора не возник вопрос касательно пустых скобок шаблона? И как сработала вторая строчка? Я вызывал стд, он выдал автоматом две переменные что у меня есть. Просто я не совсем понял. То есть эта запись означает : Пространство - структура, (: |
||||
|
|||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 24 Всего: 69 |
||||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
специализировать ничего не нужно, нужно правильно реализовать оператор < для своего класса
|
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
||||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
||||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
mes
а кто-то спорит? тс попросил less, я его дал так чтобы он работал тема называется
Это сообщение отредактировал(а) azesmcar - 2.6.2009, 14:54 |
|||
|
||||
| Познающий |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 2.6.2009 Репутация: нет Всего: нет |
не)) я как раз перегружал, ведь оператор меньше))
Всё с того и началось) |
|||
|
||||
| azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Познающий
С константами намудрил
вот рабочий пример, дорабатывайте с операторами тоже сильно намудрено Добавлено @ 15:17 Познающий
вот, немного исправил, жить будет, но желательно чтоб недолго Это сообщение отредактировал(а) azesmcar - 2.6.2009, 15:20 |
||||
|
|||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |