Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
tnk500
114 / 118 / 42
Регистрация: 25.08.2012
Сообщений: 1,294
Завершенные тесты: 3
1

Map и список инициализации

10.12.2015, 18:11. Просмотров 622. Ответов 4
Метки нет (Все метки)

Нужна карта с ключами определённого типа и элементами картами, в которых ключи того же типа, что и первые ключи, а элементы — пары:
C++
1
std::map<type, std::map<type, std::pair<int, int>, TypeCmp>, TypeCmp> myMap
.

Ну типы не важны, важно, что в шаблонный параметр всегда передаётся компататор ключа. Это инициализировать кучей вызовов insert мне абсолютно не хочется, но вот такое не работает:
C++
1
2
3
4
5
6
7
8
9
std::map<type, std::map<type, std::pair<int, int>, TypeCmp>, TypeCmp> table
    {
        { type::Inside, {
                { type::Quotes, { type::Outside, 0 } },
                { type::Other, { type::Inside, Functor() } }
            }
        },
        { type::Outside, type::Quotes, { type::Inside, 0 } }
    };
MinGW 4.9.2 пишет, что такого конструктора (std::map<...>(<brace enclosed init. list>) нет. Как выкручиваться?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2015, 18:11
Ответы с готовыми решениями:

Список инициализации конструктора
Можно ли воспользоваться списком инициализации конструктора класса потомка, для...

Список инициализации конструктора
Всем привет. У меня есть некоторые вопросы насчет списка инициализации...

Конструкторы, список инициализации
Что означает запись на последней строке? Я понял что это конструктор класса, но...

Конструктор. Наследование. Список инициализации
Если есть класс, который наследует другой класс, то как задать для конструктора...

Вопрос про список инициализации
class A { public: A() {i=1;} private: int i; }; class B {...

4
Tulosba
:)
Эксперт С++
4749 / 3243 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
10.12.2015, 18:19 2
Цитата Сообщение от tnk500 Посмотреть сообщение
MinGW 4.9.2 пишет, что такого конструктора
Может где что напутал, или не включил c++11
Для std::unordered_map работает и для map должно быть аналогично.
0
tnk500
114 / 118 / 42
Регистрация: 25.08.2012
Сообщений: 1,294
Завершенные тесты: 3
10.12.2015, 18:35  [ТС] 3
Tulosba, хм, я включил c++14, 11 не записывал. Включение 14 не означает включение 11-ого?
0
Tulosba
:)
Эксперт С++
4749 / 3243 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
10.12.2015, 18:41 4
Цитата Сообщение от tnk500 Посмотреть сообщение
Включение 14 не означает включение 11-ого?
каждая ревизия Стандарта это набор дополнений и изменений, поэтому нельзя сказать однозначно, что более новый будет поддерживать всё то, что было в старом.
Сейчас проблема актуальна или всё заработало?
0
tnk500
114 / 118 / 42
Регистрация: 25.08.2012
Сообщений: 1,294
Завершенные тесты: 3
10.12.2015, 20:02  [ТС] 5
Tulosba, есть мысль, что я напортачил с типами, надо бы просмотреть всё снова. Насколько я помню, лямбда-функции, параметры delete у конструктора, override работали и без указания 11 года.
0
10.12.2015, 20:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2015, 20:02

Список инициализации в конструктор C++11. Зачем?
Обьясните зачем в с++11 сделали возможность инициализировать данные м помощью...

Std::array и список инициализации
Помогите, плес. Как поправить? Вроде же все нармально инициализирую, но выдает...

Как правильно написать список инициализации
файл .h содержит: struct text_field{ char *text; char position; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru