![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
Как создать Map статически?
т.е. у меня есть
как это можно обернуть в std::Map? чтобы по ключу отыскивалось нужное? |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
Можно так:
Сразу проинициализировать контейнер набором значений невозможно, т.к. такого конструктора в std::map (и в любом другом контейнере) просто не существует. -------------------- ![]() |
|||
|
||||
| bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
mr.DUDA
в твоем примере есть функция char *FindByKey(int iErrCode); - которая ищет. Я не понию смысла этой функции, точнее где и как ее применять. Введь я так понимаю возможно:
|
|||
|
||||
| mr.DUDA |
|
||||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
Можно и так, но имхо квадратные скобки - не самое удачное решение, ведь в зависимости от того, как они используются - будет либо добавление элемента в карту, либо поиск (в сложных выражениях иногда трудно сказать, используется ли переменная как lvalue, или как rvalue). А если элемент не будет найден, что тогда будет возвращать g_theMap[1234] ? Правильно, что-то своё, в зависимости от реализации STL (например, NULL). А в моём примере достаточно добавить в конец функции FindByKey else return "Unknown error";. Это сообщение отредактировал(а) mr.DUDA - 13.1.2004, 11:26 -------------------- ![]() |
||||
|
|||||
| bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
mr.DUDA
Ясно. Спасибо. Вот еще такой момент:
Если не трудно, как такое завернуть в Мар? |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
Проще простого:
-------------------- ![]() |
|||
|
||||
| bel_nikita |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
что-то как-ко сложненько получается. Я хотел переложить свой коддинг на STL, но вот что-то начинаю передумывать Я вот, тут тоже навалял кое-че, но как достать элементы с Мар?
*.СРР
как достать не NULL(ExstraString), а "TEST_DDD" (String)? |
||||||
|
|||||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
Что-то я ничего из твоего примера не понял
К чему там вообще Error_t, и что ты хранишь в карте ?
g_theMap[TEST_ERR][0] - это первая строка из найденного Strings, и т.д. -------------------- ![]() |
|||
|
||||
| bel_nikita |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
mr.DUDA
Вери сэнкс. Я уже более менее разобрался. Тоже самое, что и у тебя, только чуть упрощено
Error_t - карта ошибок нейкого устройства. У этого устройства есть стандартные ошибки, например:
Но эта ошибка не конкретизирует, что именно с оптикой. Произошла ошибка при передаче или приеме, или вообще нет синхронизации? А так , при помощи char *ExstraString я конкретно сообщаю, что было передано столько-то пакетов, а принято столько-то. Т.е. при помощи char *ExstraString я могу дополнить комментарий к ошибке. Но так же могу и ничего не трогать, что тоже хорошо. Т.е. оставить ошибку по деффаулту. |
||||
|
|||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |