Zwracanie wskaźników do pierwszego i ostatniego elementu tablicy

0

Witam, mam tablicę którą tworzę dynamicznie, wszystko to obudowane w klasę :

 
class Klasa {

int * tab; // w kodzie alokuje sobie w konstrutkorze ta tablicę o zadanym rozmiarze.
size_t rozmiar;  // znam jej rozmiar 

int * begin() {  //  ta metoda chce zwracac wskaznik do poczatku tablicy , czyli tutaj wydaje mi sie ze :

return tab;
}


int * end(){

return  // ??????????? *tab[rozmiar+1] - to nie działa 
}

};
0

Pomyśl. Pierwszy element to tab + 0 w skrócie tab. A ostatni?

0
 
tab //wskaznik na pierwszy element tablicy
tab+1 // wskaznik na drugi element tablicy
*tab //wartosc pierwszego elementu (tab[0])
*(tab+1) // wartosc drugiego elementu (tab[1])
*(tab+rozmiar-1) // wartosc ostatniego elementu (tab[rozmiar-1])

1

wskaźnik do pierwszego elementu — begin():
&tab[0]
wskaźnik do ostatniego elementu — back():
&tab[rozmiar-1]
wskaźnik do "elementu" za ostatnim elementem — end():
&tab[rozmiar]

w C++ używa się czegoś takiego jak „wskaźnik do elementu za ostatnim elementem”, i to jest właśnie end() według konwencji STL. ma to wbrew pozorom więcej sensu niż wskaźnik na ostatni element.

1 użytkowników online, w tym zalogowanych: 0, gości: 1