ниже - фрагмент кода, в котором я сомневаюсь:
int v [] = {'a', 'c', 'k', 'd', 'e' , 'f', 'h'};
int* i1; i1 = std::max_element(v, v + 4);
Кто-нибудь может мне объяснить почему? Заранее спасибо: -)
Потому что std :: max_element - это не только функция для массивов. Это функция, которая работает с любым итератором. А индексы имеют смысл только для контейнеров с произвольным доступом, поэтому использование индекса в качестве возвращаемого значения излишне ограничивает интерфейс алгоритма.