При использовании функций STL, таких как sort()
или min_element()
, мне всегда нужно указывать диапазон начинать и заканчивать явно:
void range_example()
{
std::vector<int> list = {7, 3, 9, 1, 5, 2};
auto found_element = std::min_element(list.begin(), list.end());
std::cout << *found_element << std::endl;
}
Это имеет смысл, если я намереваюсь работать только на части моего контейнера, но чаще мне нужны функции для работы со всем контейнером. Есть ли причина, по которой нет перегруженной функции, которая позволяет это:
std::vector<int> list = {7, 3, 9, 1, 5, 2};
auto found_element = std::min_element(list);
Есть ли способ выполнить вызов функции для всего диапазона контейнера, который я упустил?
EDIT: Я знаю, что я могу инкапсулировать это в функцию самостоятельно, но поскольку это должно быть сделано для всех функций, я бы хотел избежать этого, если есть лучший способ.