Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / std::map Traits / 3 сообщений из 3, страница 1 из 1
25.04.2007, 13:42
    #34486366
vanoman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
std::map Traits
Есть
std::map <CString,CString>
Надо сравнивать значения Ключа НЕ по правилам сравнения строк.

Поясняю в Key будет находится КОД представленный в виде строки. У кода свой, отличный от строкового, алгоритм сравнения "больше-меньше"

исходя из объявления шаблона:

template <
class Key,
class Type,
class Traits = less<Key>,
class Allocator=allocator<pair <const Key, Type> >
>
Есть возможность подсунуть свою функцию, которая будет производить сравнение элементов в контейнере.

Проблема:
Не могу найти примера. Примера функции для сравнения. Как её надо передавать контейнеру при объявлении... Каков должен быть прототип функции-сравнения...

Спасибо, если можете привести пример.
...
Рейтинг: 0 / 0
25.04.2007, 14:05
    #34486469
blinded
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
std::map Traits
less - не функция а функтор, это класс. А чтобы там все срослось надо написать типатакого
class my_cmp
{
public:
bool operator()(const CString&, const CString&) { ... }
};

map<CString, CString, my_cmp> my_map;
...
Рейтинг: 0 / 0
25.04.2007, 14:22
    #34486526
vanoman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
std::map Traits
blindedless - не функция а функтор, это класс. А чтобы там все срослось надо написать типатакого
class my_cmp
{
public:
bool operator()(const CString&, const CString&) { ... }
};

map<CString, CString, my_cmp> my_map;

Да, согласен...

Пробовал писать


class MYless
{
public:
bool operator()(const CString& left, const CString& Right) const
{
return (left.Compare(Right)<0);
}
};

...
std::map <CString,CString,MYless> m_Socr;
...
m_Items[strBufferColCode]=kiBuffer;

Тьфу ты блин, а я голову ломаю: почему в Дебаггере не происходит обращение к оператору?
Объявил в одном контейнере, а пользую другом....

m_Socr!=m_Items


Спасибо за поддержку.
Вопрос закрыт
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / std::map Traits / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]