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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.06.2013, 22:39   #1
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию stl sort

Код:
struct Review
{
    std::string title;
    int rating;
};
....
bool operator<(const Review &r1, const Review &r2);
...
int main()
{
    using namespace std;
    vector<Review> books;
    .....
     sort(books.begin(), books.end());
     cout < "Sorted by title:\nRating\tBook\n";
    ....
}
bool operator<(const Review &r1, const Review &r2)
{
    if (r1.title <r2.title)
        return true;
    else
        if (r1.title == r2.title && r1.rating <r2.rating)
            return true;
        else
            return false;
}
D:\Qt_Creator\untitled17-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK__Debug\..\untitled17 \main.cpp:31: error: no match for 'operator<' in 'std::cout < "Sorted by title:\012Rating\011Book\012"'
не пойму почему в выделеной строке ошибка.
Зарание спасибо за помощь.

Последний раз редактировалось Pein95; 21.06.2013 в 22:43.
Pein95 вне форума Ответить с цитированием
Старый 21.06.2013, 22:55   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Может быть cout <<?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 21.06.2013, 23:30   #3
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Pein95
ты серьезно хотел оптимизировать компаратор на одном сравнении строк, или просто написал говнокод? если хотел оптимизировать, то нужно было использовать string::compare. если не хотел, то можно написать так:
Код:
bool operator<(const Review &r1, const Review &r2)
{ return r1.title == r2.title ? r1.rating < r2.rating : r1.title < r2.title; }
красивее?
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 21.06.2013, 23:53   #4
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию

блин) я думал чтото не так з sort) спасибо)
progger, это пример из книги.
Pein95 вне форума Ответить с цитированием
Старый 22.06.2013, 12:59   #5
Igor95
Форумчанин
 
Регистрация: 03.01.2013
Сообщений: 388
По умолчанию

< - operator<
<< - оператор вывода в поток (operator<<)
Igor95 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Метод Sort Vasya25 Microsoft Office Excel 4 21.05.2012 23:19
Не работает метод SORT leonard Microsoft Office Excel 0 17.05.2011 13:18
STL в QT конфликтует с STL в Borland nvrrus C++ Builder 0 31.03.2011 10:51
TList->Sort ongleb Общие вопросы C/C++ 0 12.03.2010 14:58
(STL LIST SORT) Сортировка по некольким критериям htatsu Общие вопросы C/C++ 4 19.07.2009 01:44