Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Добавление в multimap, не могу добавить 
:(
    Опции темы
Andrey44
Дата 27.3.2008, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 2
Всего: 26



В общем у меня есть
Код

std::multimap<std::wstring, std::pair<CmdEntry, EVENTINFO>>    _commands;

EVENTINFO ev;
        CmdEntry cmdEn;
        _commands.insert(L"ID_Exit", std::pair<cmdEn, ev>);//так нельзя
        _commands[L"ID_Exit"] = std::pair<cmdEn, ev>;//и так нельзя


CmdEntry - структура
EVENTINFO - структура

Как тогда можно?


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
korian
Дата 27.3.2008, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 8.3.2008
Где: Украина, Харьков

Репутация: 3
Всего: 17



поидее так можно...
Код

std::multimap<std::wstring, std::pair<CmdEntry, EVENTINFO>>    _commands;

EVENTINFO ev;
        CmdEntry cmdEn;
        _commands.insert(L"ID_Exit", std::pair<cmdEn, ev>());
        _commands[L"ID_Exit"] = std::pair<cmdEn, ev>();


Добавлено @ 13:46
ой... не так нельзя  smile 
вообще... любите typedef, оно тогда читабильнее и понятнее =)
Код

typedef std::pair<CmdEntry, EVENTINFO> mypair;
typedef std::multimap<std::wstring, mypair> mymap;

mymap   _commands;

EVENTINFO ev;
        CmdEntry cmdEn;
        _commands.insert(L"ID_Exit", mypair(cmdEn, ev));
        _commands[L"ID_Exit"] = mypair(cmdEn, ev);


Это сообщение отредактировал(а) korian - 27.3.2008, 13:48
PM   Вверх
Andrey44
Дата 27.3.2008, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 2
Всего: 26



korian, чет не хочет пишет
>.\DashboardUi.cpp(52) : error C2664: 'std::_Tree<_Traits>::iterator std::multimap<_Kty,_Ty>::insert(std::_Tree<_Traits>::iterator,const std::pair<_Ty1,_Ty2> &)' : cannot convert parameter 1 from 'const wchar_t [8]' to 'std::_Tree<_Traits>::iterator'


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
Rififi
Дата 27.3.2008, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008

Репутация: 11
Всего: 36



Код

_commands.insert(mymap::value_type(L"ID_Exit", std::make_pair(cmdEn, ev)));

PM MAIL   Вверх
korian
Дата 27.3.2008, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 8.3.2008
Где: Украина, Харьков

Репутация: 3
Всего: 17



Цитата(Andrey44 @  27.3.2008,  12:57 Найти цитируемый пост)
чет не хочет пишет

угу, я, по вашей записи, подумал что у multimap есть insert(key,value), а у него такого нету...
Код

typedef std::pair<CmdEntry, EVENTINFO> mypair;
typedef std::multimap<std::wstring, mypair> mymap;

mymap   _commands;

EVENTINFO ev;
CmdEntry cmdEn;
_commands.insert(mymap::value_type(L"ID_Exit", mypair(cmdEn, ev)));
_commands[L"ID_Exit"] = mypair(cmdEn, ev);

PM   Вверх
Andrey44
Дата 27.3.2008, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 2
Всего: 26



Rififi, 
korian, 
спасибо, mymap::value_type помогло smile 


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
Andrey44
Дата 27.3.2008, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 2
Всего: 26



Парни, подскажите еще пожалуйста
Код

std::multimap<std::wstring, mypair>::const_iterator it = _commands.find((LPCTSTR)pEventInfo->sName);
        if(it == _commands.end())    return;
        const CmdEntry& ce = it->second;//как достать CmdEntry?



--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
korian
Дата 27.3.2008, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 8.3.2008
Где: Украина, Харьков

Репутация: 3
Всего: 17



вопрос не понят...
вы его вроди и так достали...
если надо его менять, то зачем объявлять const_iterator?
или тот код не компилится?
PM   Вверх
Andrey44
Дата 27.3.2008, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 2
Всего: 26



Да, код не компилится

error C2440: 'initializing' : cannot convert from 'const DashboardUI::mypair' to 'const CmdEntry &'
1>        Reason: cannot convert from 'const DashboardUI::mypair' to 'const CmdEntry'


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
blinded
Дата 27.3.2008, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 16.2.2008

Репутация: нет
Всего: нет



Вот так
Код

    const CmdEntry& ce = it->second.first;

PM MAIL   Вверх
Andrey44
Дата 28.3.2008, 08:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 2
Всего: 26



blinded, спасибо smile как я сам не мог подумать об этом? smile 


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0517 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.