Własny kontener do adaptera stosu
Ostatnio zmodyfikowano 2017-03-08 23:09
patryk181299 Temat założony przez niniejszego użytkownika |
Własny kontener do adaptera stosu » 2017-03-08 22:17:05 #include <stack>
template < typename typZmiennej > class CKontenerStosu { public: typedef typZmiennej value_type; typedef typZmiennej & reference; typedef const typZmiennej & const_reference; typedef int size_type; void push_back( const_reference zmienna ) { } void pop_back( void ) { } bool empty( void ) const { } size_type size( void ) const { } reference back( void ) { } CKontenerStosu( void ) { } CKontenerStosu( const CKontenerStosu & skopiuj ) { } ~CKontenerStosu( void ) { } };
int main() { std::stack < int, CKontenerStosu < int > > mojStos; mojStos.push( 12 ); mojStos.pop(); mojStos.empty(); mojStos.size(); mojStos.top(); return 0; }
Witam :) , jestem początkującym w c++. Mógłby ktoś wytłumaczyć mi jaka jest korelacja między push_back i pop_back w klasie CKontenerStosu a wywołaniem metody .push() i .pop() w main'e? Czemu te funkcje nie nazywają się tak samo? :) Z góry dziękuję za pomoc :) |
|
Bielan |
» 2017-03-08 22:46:25 Ponieważ tak naprawdę wywołujesz metody std::stack , które niżej korzystają z klasy, którą przesyłasz jako argument szablonu. Nazwy funkcji w kontenerze są narzucone przez wymagania std::stack . |
|
1aam2am1 |
» 2017-03-08 22:49:54 Ponieważ mojStos jest typu std::stack<...> a nie CKontenerStosu. Klasa stack wykorzystuje powyższa klase aby przechowywać w niej wartości i na niej operować. Ale jednocześnie dla ciebie udostepnia interfejs (funkcje) abyś mógł na niej pracować. Nie zglebialem się w budowę wewnętrzna biblioteki ale najpewniej funkcja push wywołuje w sobie funkcje push_back itd... |
|
patryk181299 Temat założony przez niniejszego użytkownika |
Dziekuję :) » 2017-03-08 23:09:27 Dziękuję ślicznie za pomoc :) To by wyjaśniało wszystko :) Zamykam :) |
|
« 1 » |