Ламерский вопрос про std::multimap
От: Аноним  
Дата: 24.07.11 20:26
Оценка:
Добрый вечер всем!
Есть такой код для работы с std::multimap, взят практически из книжки. Но в моем коде мне приходится приводить строки явно к (char *) при вставке элементов, иначе выдается ошибка:

Error 1 error C2440: 'initializing' : cannot convert from 'const char [2]' to 'char *const '


Так вот в книге был приведен код без приведения. Скажите, почему возникает такая ошибка и должна ли она действительно быть? Компилятор — VC++ 2010.

class compareMaps
{
public:
    bool operator()(const char *arg1, const char *arg2)
    {
        return strcmp(arg1, arg2) < 0;
    }
};

typedef multimap<char *, int, compareMaps> mmtype;
mmtype mmap1;
mmap1.insert(mmtype::value_type((char *)"a", 111));
mmap1.insert(mmtype::value_type((char *)"b", 111));
cout << "The size of mmap1 is " << mmap1.size() << endl;
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.