Есть ли способ использовать автономный ' std:: begin` и для итератора const?
Мне нравится последовательность. Недавно я задал вопрос об использовании std::begin
против, например, std::vector<int>::begin
, и единогласное решение, по-видимому, состояло в том, чтобы использовать первое, поскольку оно является более общим. Но я думаю, что нашел палку в грязи. Иногда вы хотите передать, что вы не будете изменять контейнер, когда вы проходите через него, поэтому вызываете std::vector<int>::cbegin
. Это сделало бы ваш код довольно асимметричным, если бы вы иногда делали iter = v.cbegin()
, а в другие времена делали iter = begin(v)
. Есть ли способ обойти это отсутствие симметрии, и вы все еще рекомендуете std::begin
учитывая эти знания? Почему в C++ нет std::cbegin
?