Использование объектной переменной для мультикарты equal_range ()

Я использую объект в качестве ключа для мультикарты. Объект представляет собой пользовательский класс дат, который я создал. Мне просто интересно, возможно ли использовать переменную, найденную в объекте для equal_range ()?

Это проверка по отношению к переменной месяца в моем объекте пользовательской даты.

Это что-то вроде этого (псевдокод).

int january = 1;
foundValues = myMultimap.equal_range(january);

for (it=foundValues.first; it!=foundValues.second; ++it)
{
cout << " " << (*it).second;
cout << endl;
}

Будет ли это проходить через каждый ключевой объект и проверять, равна ли переменная внутри этого объекта «январь», а затем возвращать значение, спаренное с ключом?

Спасибо.

0

Решение

Участники поиска ассоциативного контейнера работают только по ключу. Они существуют, потому что они используют в своих интересах внутреннюю структуру контейнера, которая гарантирует поиск значений (или их отсутствие) в O(log(n)) время (где n количество элементов в контейнере).

Если вы хотите найти все элементы в последовательности, соответствующие условию, которое вы, вероятно, хотите использовать std::copy_if() с подходящим предикатом.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]