case insensitive less
От: gbt Россия  
Дата: 29.10.05 13:14
Оценка:
Есть ли в boost (а может и в STL я не заметил) реализация предиката для сравнения строк без учета регистра ?

Хочу использовать такой, например, в map:
std::map<std::string, std::string, case_insensitive_less<std::string> >

Задолбался каждый раз изобретать велосипед...
Re: case insensitive less
От: srggal Украина  
Дата: 29.10.05 13:20
Оценка:
Здравствуйте, gbt, Вы писали:

gbt>Есть ли в boost (а может и в STL я не заметил) реализация предиката для сравнения строк без учета регистра ?


gbt>Хочу использовать такой, например, в map:

gbt>std::map<std::string, std::string, case_insensitive_less<std::string> >

gbt>Задолбался каждый раз изобретать велосипед...


Заимплементить один раз char_traits в котором в методе

static int compare(
   const char_type* _Str1, 
   const char_type* _Str2, 
   size_t _Num 
);


реализоваьт нужную вам функциональность, тогда basic_string< CHART, My_char_traits >
... << RSDN@Home 1.1.4 stable rev. 510>>
Re[2]: case insensitive less
От: gbt Россия  
Дата: 29.10.05 13:28
Оценка:
Здравствуйте, srggal, Вы писали:

gbt>>Есть ли в boost (а может и в STL я не заметил) реализация предиката для сравнения строк без учета регистра ?


gbt>>Хочу использовать такой, например, в map:

gbt>>std::map<std::string, std::string, case_insensitive_less<std::string> >

gbt>>Задолбался каждый раз изобретать велосипед...


S>Заимплементить один раз char_traits в котором в методе

S>реализоваьт нужную вам функциональность, тогда basic_string< CHART, My_char_traits >
Спасибо, но я реализую довольно много несвязных проектов и уже который раз встречаю необходимость в таком деле.
Один раз реализовать не удастся, так как проекты не связаны, то есть не линкуются ни к каким общим библиотекам и не используют общие хедеры...

Приходится каждый раз писать такой функтор, можно конечно и вашим способом, но везде используются строки string — их придется менять или писать функцию преобразования...
В любом случае, мне нужно что-то стандартное... даже в boost::string_algo вроде не увидел подходящего...
Re: case insensitive less
От: korzhik Россия  
Дата: 29.10.05 13:29
Оценка:
Здравствуйте, gbt, Вы писали:

gbt>Есть ли в boost (а может и в STL я не заметил) реализация предиката для сравнения строк без учета регистра ?


gbt>Хочу использовать такой, например, в map:

gbt>std::map<std::string, std::string, case_insensitive_less<std::string> >

gbt>Задолбался каждый раз изобретать велосипед...


В boost знаю только case insensitive equal
http://www.boost.org/doc/html/is_iequal.html

вот ещё здесь можешь прочитать
http://www.rsdn.ru/Forum/Message.aspx?mid=356055
Автор: Павел Кузнецов
Дата: 18.08.03
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.