equal_range — returns both bounds. lower_bound — returns only lower bound.
1std::vector<int> v = {1, 2, 2, 2, 3, 4};23// lower_bound — just first >= value4auto lb = std::lower_bound(v.begin(), v.end(), 2);56// equal_range — both bounds7auto range = std::equal_range(v.begin(), v.end(), 2);8auto lb = range.first; // Same as lower_bound9auto ub = range.second; // Same as upper_bound1011// Count12int count = std::distance(range.first, range.second);13// 3
equal_range is convenience: