Rozumiem, jak iteratory dostępu bezpośredniego działają dla sąsiadujących kontenerów, takich jak std :: vector: iterator po prostu utrzymuje wskaźnik do bieżącego elementu, a wszelkie dodatki/odejmowania są stosowane do wskaźnika. Jednak jestem zaskoczony, w jaki sposób można zastosować podobną funkcjonalność dla nieciągłego kontenera. Moim pierwszym przypuszczeniem, w jaki sposób działa std :: deque: iterator jest to, że zachowuje wskaźnik do jakiejś tabeli grup ciągłych pamięci, które zawiera, ale nie jestem pewien.W jaki sposób realizowane są iteratory z dostępem swobodnym dla nieciągłych kontenerów (takich jak std :: deque)?
W jaki sposób typowa biblioteka standardowa to wdroży?
Kto mówi, że 'deque' nie jest ciągły? Zwykle jest zaimplementowana jako tablica dynamiczna. – ooga
@ooga od [tutaj] (http://en.cppreference.com/w/cpp/container/deque) 'W przeciwieństwie do std :: vector, elementy deque nie są przechowywane w sposób ciągły: typowe implementacje używają sekwencji pojedynczo przydzielonych tablic o stałych rozmiarach. " –
@ooga, więc jak by to się różniło od wektora? – chris