Диапазон равных в C++
Алгоритм equal_range за один проход возвращает
границы поддиапазона равных ключу элементов
в отсортированной последовательности.
Результат - структура pair с first и second.
Между ними лежат все совпадения.
Запишем вектор оценок и выведем количество
двоек через разность итераторов:
#include <algorithm>
#include <iostream>
#include <vector>
int main() {
std::vector<int> marks = {1, 2, 2, 2, 3};
auto range = std::equal_range(marks.begin(), marks.end(), 2);
std::cout << (range.second - range.first) << "\n";
return 0;
}
В отсортированном векторе {5, 5, 7, 7, 7} получите equal_range для 7 и выведите число семерок в этом интервале.