Hej,
ostatnio zastanawiałem się nad tym jak najlepiej poskładować duże elementy, które następnie będą posortowane. Gdy usłyszałem te pytanie od razu powiedziałem, że w liście, by sortować jedynie iteratory a elementy tak naprawdę pozostawić w spokoju. Jednak nie zakładałem, że jeżeli tych elementów jest dużo, porównywalnie do powiedzmy rozmiaru tych danych, to wtedy czas potrzebny na przejście między wskaźnikami będzie na tyle duży, że kopiowanie dużych struktur wcale nie byłoby gorsze.
Obecnie myślę o gromadzeniu w wektorze [bo ciągłość pamięci więc i mocna optymalizacja dostępu] małych elementów prostej klasy która posiada wskaźnik na dany duży element, oraz przeładowanie operatora < w którym te małe obiekty odnoszą się do określonych wartości pod wskaźnikiem - w celu możliwego działania w sort() [chyba ten operator wystarczy]. Dzięki temu uzyskamy zarówno szybki dostęp do elementów jak i ciągłość w pamięci. Co myślicie?
Jakie są wasze typy?
Dobrze myślę, że przy sortowaniu listy dochodzi tylko do sortowania iteratorów i zmian w tym który na co wskazuje, czy nie?