Я использую объект в качестве ключа для мультикарты. Объект представляет собой пользовательский класс дат, который я создал. Мне просто интересно, возможно ли использовать переменную, найденную в объекте для equal_range ()?
Это проверка по отношению к переменной месяца в моем объекте пользовательской даты.
Это что-то вроде этого (псевдокод).
int january = 1;
foundValues = myMultimap.equal_range(january);
for (it=foundValues.first; it!=foundValues.second; ++it)
{
cout << " " << (*it).second;
cout << endl;
}
Будет ли это проходить через каждый ключевой объект и проверять, равна ли переменная внутри этого объекта «январь», а затем возвращать значение, спаренное с ключом?
Спасибо.
Участники поиска ассоциативного контейнера работают только по ключу. Они существуют, потому что они используют в своих интересах внутреннюю структуру контейнера, которая гарантирует поиск значений (или их отсутствие) в O(log(n))
время (где n
количество элементов в контейнере).
Если вы хотите найти все элементы в последовательности, соответствующие условию, которое вы, вероятно, хотите использовать std::copy_if()
с подходящим предикатом.
Других решений пока нет …