Как создать мультисет пар в С++?

Мне нужно использовать 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;
→ Ссылка