Гость
Форумы / C++ [игнор отключен] [закрыт для гостей] / Что-то я не пойму с STL / 4 сообщений из 4, страница 1 из 1
04.03.2003, 12:20
    #32114199
Ingvarwolf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что-то я не пойму с STL
Только сильно не пинайте, если ошибка простая...
Есть класс (IDE — C++ Buider 4):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
class WPropSet {
    private:
        std::map<AnsiString, int> m_mapIntProps;

    public:
        void GetProperty(AnsiString &, int &) const;
        void SetProperty(AnsiString &, int);
};

void WPropSet::GetProperty(AnsiString &asKey, int &nVal) const {
    if (m_mapIntProps.count(asKey) ==  1 ) {
        nVal = m_mapIntProps[asKey]; // ***
    }
}

void SetProperty(AnsiString &, int) {
    // ...
}


В строке обозначенной // *** компилятор выдает ошибку "operator + not implemented..." У меня раньше такое случалось и вылечивалось определением operator < для класса ключа, но ведь у AnsiString уже есть operator <... Тогда где проблема?

P.S. Решить проблему я могу, написав свой класс hash_map (по Страуструпу), но может быть вопрос решается проще?
...
Рейтинг: 0 / 0
04.03.2003, 13:38
    #32114290
Kilroy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что-то я не пойму с STL
Проще не map создавать, а вместо AnsiString взять std::string

а компилятор ругается при выведении класса по шаблону, так как AnsiString
вероятно не реализует операций, необходимых для класса-первого аргумента
шаблона.
...
Рейтинг: 0 / 0
04.03.2003, 13:47
    #32114301
kyky
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что-то я не пойму с STL
как мне кажется он немного другую ошибку выдает, а именно ругается на отсутствие operator[]. для поиска значения тебе нужно использовать функцию find(key), которая вернет тебе либо итератор найденного элемента либо указатель на конец мапы.
смотри в NSDN: mk:@MSITStore:C:\Program%20Files\Microsoft%20Visual%20Studio\MSDN\2001OCT\1033\vclang.chm::/html/sample_mapCCinsert__mapCCfind__and_mapCCend_(STL_Sample).htm#_sample_stl_mapCCinsert_find_end
...
Рейтинг: 0 / 0
04.03.2003, 14:20
    #32114336
Ingvarwolf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что-то я не пойму с STL
2 kyky:
Да, проблема решилась при помощи метода find(key), спасибо. Только пример в MSDN не смог найти — уж больно путь мудреный... :)
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Что-то я не пойму с STL / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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