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

multimap::emplace() - C++

Восстановить пароль Регистрация
 
NaikoN
2 / 2 / 0
Регистрация: 01.05.2013
Сообщений: 109
02.02.2014, 13:21     multimap::emplace() #1
При компиляции этого кода:
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++
АТД Стек. Различие между push() и emplace() C++
C++ multimap
Multimap зацикливается C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
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
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
02.02.2014, 14:11     multimap::emplace() #4

Не по теме:

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



Среди флагов компиляции есть -std=c++11 ?
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 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
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 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
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
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
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
02.02.2014, 16:55     multimap::emplace() #12
NaikoN, к сожалению на win Xp давно не работал.
Если сборка скачалась - вы всегда можете указать пути вручную:
multimap::emplace()
Вверху замените D:\mingw на папку, где лежит mingw ваш скачанный.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
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++
Std::map::emplace C++
Multimap. Ошибка operator+ not implemented in type 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()
Ответ Создать тему
Опции темы

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