powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / C++ [игнор отключен] [закрыт для гостей] / Что-то я не пойму с STL
4 сообщений из 4, страница 1 из 1
Что-то я не пойму с STL
    #32114199
Ingvarwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только сильно не пинайте, если ошибка простая...
Есть класс (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
Что-то я не пойму с STL
    #32114290
Kilroy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проще не map создавать, а вместо AnsiString взять std::string

а компилятор ругается при выведении класса по шаблону, так как AnsiString
вероятно не реализует операций, необходимых для класса-первого аргумента
шаблона.
...
Рейтинг: 0 / 0
Что-то я не пойму с STL
    #32114301
kyky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как мне кажется он немного другую ошибку выдает, а именно ругается на отсутствие 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
Что-то я не пойму с STL
    #32114336
Ingvarwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 kyky:
Да, проблема решилась при помощи метода find(key), спасибо. Только пример в MSDN не смог найти — уж больно путь мудреный... :)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Что-то я не пойму с STL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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