1 / 1 / 0
Регистрация: 16.02.2015
Сообщений: 30
1

Map: обращение к значению (класс) через []

07.07.2015, 11:44. Показов 4568. Ответов 2
Метки нет (Все метки)

Всем добрый день.
Подскажите пожалуйста почему в 14 строчке без пустого конструктора пример не компилится ?
Ведь я обращаюсь к объекту ...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
struct A
{
  int val;
  string str;
  A(int i, string msg) : val(i),str(msg) {}
  A() {}
};
 
int main()
{
  map<int,A> tmp;
  tmp.insert({1,A(1,"aaa")});
  tmp.insert({2,A(2,"bbb")});
  cout << tmp[1].str << endl;
  return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.07.2015, 11:44
Ответы с готовыми решениями:

Обращение к элементам vector, который находится в map, находящийся в map
Всем добрый день! Имеется такой контейнер. Как обращаться к элементам вектора и как пушбэчить...

Обращение к map, который внутри другого map
std::map&lt;int, std::map&lt;std::string, int&gt;&gt; m1; std::map&lt;std::string, int&gt; m2; void main() {...

Обращение к переменной через класс
Приветствую. Подскажите пожалуйста Имеется следующий класс: class Symbol_table{...

Сортировка map по значению
Есть некий map: map&lt;string, int&gt; MyMap; Нужно вывести на экран всё содержимое контейнера в...

2
шКодер самоучка
2175 / 1882 / 912
Регистрация: 09.10.2013
Сообщений: 4,140
Записей в блоге: 7
07.07.2015, 11:52 2
operator[] для map создает новый объект, если ключ не найден и ассоциирует этот ключ с новеньким пустым объектом
а для создания объекта нужен конструктор по умолчанию
PS: ваш код можно переписать без insert, основываясь на этом свойстве map:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
struct A
{
  int val;
  string str;
  A(int i, string msg) : val(i),str(msg) {}
  A() {}
};
 
int main()
{
  map<int,A> tmp;
  tmp[1] = A(1,"aaa");
  tmp[2] = A(2,"bbb");
  cout << tmp[1].str << endl;
  return 0;
}
результат будет тем же
1
1 / 1 / 0
Регистрация: 16.02.2015
Сообщений: 30
07.07.2015, 12:05  [ТС] 3
Цитата Сообщение от Cra3y Посмотреть сообщение
operator[] для map создает новый объект
воот этого я не учел надо бы внимательнее читать.
Спасибо
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.07.2015, 12:05
Помогаю со студенческими работами здесь

Сортировка map по значению
Добрый день:) Как можно отсортировать map по возрастанию/убыванию float(неважно ключ это или...

Сортировка map по значению
Здорова господа!!! Есть массив: map&lt;string, int&gt; m; m=3; m=2; m=10; Нужно найти...

Сортировка map по значению
Доброго времени суток как можно безболезненно отсортировать map по значению? я пробовал bool...

Сортировка map по ключу и значению
Всем привет. Я создаю map и добавляю туда элементы: map&lt;int,string&gt; m; m=&quot;a&quot;; m=&quot;c&quot;; m=&quot;b&quot;; ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru