Как создать мультисет пар в С++?
Мне нужно использовать multiset, но с использованием пар, объявляю я это так:
multiset <pair <int, int>> st;
Но затем, мне нужно смотреть на каждый элемент пары, я пытаюсь делать это так:
auto it = st.begin();
int a = *it.first;
Но что-то идёт не так, компилятор выдаёт ошибку
error: 'struct std::_Rb_tree_const_iterator<std::pair<int, int> >' has no member named 'first'
Подскажите, как мне достать первый элемент из пары?
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Приоритет оператора . (точка) выше приоритета разыменования. Поэтому
int a = *it.first;
трактуется как
int a = *(it.first);
а вам нужно
int a = (*it).first;
или, что то же самое,
int a = it->first;