Не могу взять значение по итератору

283
05 ноября 2017, 18:25

Как взять .second значение пары, на которую указывает .begin() от set, который находится в vector?

То есть моя конструкция выглядит как-то так:

vector<set<pair<int, string>, comp>> v(30);

Для простого set<pair<int, int>> это выглядело бы так: (*s.begin()).second, но наличие массива всё портит. Не получается никак сделать то, что надо...

Answer 1

Вы как-то странно задали вопрос. Где в векторе находится нужный set?

Если это i-й элемент вектора, то этот set - v[i]. Если на него указывает какой-то итератор - скажем, begin() - то это v.begin(). А дальше можно считать, что это и есть ваш s из вопроса:

v[i].begin()->second
v.begin()->begin()->second

Или вот как выглядит перечисление всех second, имеющихся в векторе:

for(auto vi: v) for(auto si: vi) cout << si.second << endl;
Answer 2
v.begin()->begin()->second;
READ ALSO
Реализация индексации в хэш-таблице на основе хэш-значений полученных с помощью md5 алгоритма

Реализация индексации в хэш-таблице на основе хэш-значений полученных с помощью md5 алгоритма

Используйте степень двойки для размера своей хэш-таблицы и берите младшие биты MD5 для индексации

213
Как плагин scrollTofixed заставить срабатывать еще раз, когда страница подгрузилась?

Как плагин scrollTofixed заставить срабатывать еще раз, когда страница подгрузилась?

Мне нужно реализовать этот примерЕдинственное, тот блок, который в примере <li id="left"> у меня с подгрузкой при прокрутке

245