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

Zwracanie wskaźników do pierwszego i ostatniego elementu tablicy
M1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 106
0

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

Kopiuj
 
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 
}

};
Rekman
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 148
0

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

LU
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Gdańsk
0
Kopiuj
 
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])

Azarien
  • Rejestracja: dni
  • Ostatnio: dni
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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.