Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
NaikoN
2 / 2 / 0
Регистрация: 01.05.2013
Сообщений: 109
#1

multimap::emplace() - C++

02.02.2014, 13:21. Просмотров 607. Ответов 13
Метки нет (Все метки)

При компиляции этого кода:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <map>
 
using namespace std;
int main ()
{
  multimap<char,int> mymultimap;
 
  mymultimap.emplace('a',10);
 
  cout << "mymultimap contains: ";
  for (auto it=mymultimap.begin();it!=mymultimap.end();++it)
    cout<<it->first<<" : "<<it->second<<endl;
 
  return 0;
}
Компилятор выдает эту ошибку:
F:\Institut\MinGWStudio\programs\test1\main.cpp|9|error: 'class std::multimap<char, int>' has no member named 'emplace'|
Почему??
P. S. Спасибо за ответ.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.02.2014, 13:21     multimap::emplace()
Посмотрите здесь:

C++ STL multimap.
сортировка в multimap C++
неверное выполнение multimap C++
АТД Стек. Различие между push() и emplace() C++
C++ multimap
Подсчет цены в multimap C++
Multimap зацикливается C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2449 / 1621 / 238
Регистрация: 24.11.2012
Сообщений: 3,991
02.02.2014, 13:23     multimap::emplace() #2
Компилятор должен поддерживать С++11, см документацию к Вашему.
NaikoN
2 / 2 / 0
Регистрация: 01.05.2013
Сообщений: 109
02.02.2014, 14:09  [ТС]     multimap::emplace() #3
Цитата Сообщение от 0x10 Посмотреть сообщение
Компилятор должен поддерживать С++11, см документацию к Вашему.
Компилятор поддерживает С++11. Я использую Code::Blocks.
0x10
2449 / 1621 / 238
Регистрация: 24.11.2012
Сообщений: 3,991
02.02.2014, 14:11     multimap::emplace() #4

Не по теме:

Название среды лично мне не говорит о том, какой компилятор используется.



Среди флагов компиляции есть -std=c++11 ?
gray_fox
What a waste!
 Аватар для gray_fox
1252 / 1135 / 54
Регистрация: 21.04.2012
Сообщений: 2,357
Завершенные тесты: 3
02.02.2014, 14:12     multimap::emplace() #5
NaikoN, -std=c++11 в опциях при компиляции?
NaikoN
2 / 2 / 0
Регистрация: 01.05.2013
Сообщений: 109
02.02.2014, 14:50  [ТС]     multimap::emplace() #6
Цитата Сообщение от gray_fox Посмотреть сообщение
NaikoN, -std=c++11 в опциях при компиляции?
Да, стоит галочка напротив этой опции.
Somebody
2775 / 1589 / 142
Регистрация: 03.12.2007
Сообщений: 4,162
Завершенные тесты: 1
02.02.2014, 15:27     multimap::emplace() #7
Старая версия gcc, наверное.
NaikoN
2 / 2 / 0
Регистрация: 01.05.2013
Сообщений: 109
02.02.2014, 15:44  [ТС]     multimap::emplace() #8
Цитата Сообщение от Somebody Посмотреть сообщение
Старая версия gcc, наверное.
А как можно проверить, старая версия или нет???
MrGluck
Ворчун
Эксперт CЭксперт С++
 Аватар для MrGluck
6227 / 3472 / 424
Регистрация: 29.11.2010
Сообщений: 9,178
02.02.2014, 16:15     multimap::emplace() #9
Если не ставили новый компиль, то посмотреть при запуске на стартовой странице под заголовком. Там будет нечто вроде
multimap::emplace()
Советую вам скачать сборку mingw никсмана она автоматически подхватывается в CodeBlocks. gcc там 4-8.1, emplace методы поддерживает.
NaikoN
2 / 2 / 0
Регистрация: 01.05.2013
Сообщений: 109
02.02.2014, 16:36  [ТС]     multimap::emplace() #10
MrGluck, У меня версия gcc 4.7.1.
NaikoN
2 / 2 / 0
Регистрация: 01.05.2013
Сообщений: 109
02.02.2014, 16:47  [ТС]     multimap::emplace() #11
MrGluck,
При скачивании сборки, выдает такую ошибку. Не подскажите в чем причина??
Миниатюры
multimap::emplace()  
MrGluck
Ворчун
Эксперт CЭксперт С++
 Аватар для MrGluck
6227 / 3472 / 424
Регистрация: 29.11.2010
Сообщений: 9,178
02.02.2014, 16:55     multimap::emplace() #12
NaikoN, к сожалению на win Xp давно не работал.
Если сборка скачалась - вы всегда можете указать пути вручную:
multimap::emplace()
Вверху замените D:\mingw на папку, где лежит mingw ваш скачанный.
MrGluck
Ворчун
Эксперт CЭксперт С++
 Аватар для MrGluck
6227 / 3472 / 424
Регистрация: 29.11.2010
Сообщений: 9,178
02.02.2014, 16:56     multimap::emplace() #13
Сообщение было отмечено автором темы, экспертом или модератором как ответ
компиляторы указывайте из папки mingw\bin
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.02.2014, 17:11     multimap::emplace()
Еще ссылки по теме:

Отсортировать multimap по pair->second C++
Помещение данных в multimap C++
Std::map::emplace C++
Multimap. Ошибка operator+ not implemented in type multimap C++
Ошибка с multimap C++

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

Или воспользуйтесь поиском по форуму:
NaikoN
2 / 2 / 0
Регистрация: 01.05.2013
Сообщений: 109
02.02.2014, 17:11  [ТС]     multimap::emplace() #14
MrGluck, Спасибо, я просто скачал новю версию Code::Blocks и все стало работать

Добавлено через 7 минут
P.S. gcc то же версии 4.7.1., так, что проблема была не в gcc.
Yandex
Объявления
02.02.2014, 17:11     multimap::emplace()
Ответ Создать тему
Опции темы

Текущее время: 15:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru