Witajcie
Mam na ćwiczeniach z programowania obiektowego takie zadanie:
(C++14) Napisz szablon funkcji, która przyjmie jako argument referencję na jednoargumentowy kontener. Funkcja powinna zwrócić referencję na najmniejszy element tego kontenera.
Mój ćwiczeniowiec rozwiązał to tak jak poniżej
template < template<typename ...> class C, typename T>
T &minOfContainer(C<T> container) {
T &min=*container.begin();
for(T ¤t : container) {
if(current < min)
min=current;
}
return min;
}
Mam pewne wątpliwości co do poprawności tego rozwiązania.
Z tego co wiem ( a wiem niewiele ) to zmienna referencyjna jest aliasem do innej zmiennej, inną nazwą tego samego miejsca w pamięci. Wyczytałem także, że zmienna referencyjna jest inicjowana raz przy deklaracji i nie powinna być zmieniana. W powyższym kodzie jest ona traktowana jak normalna zmienna. Nie mogę tego zrozumieć.
Czy jest mi ktoś w stanie to wyjaśnić?
Pozdrawiam