Czytałem TC++ PL o komponencie raw_storage_iterator. Korzystając z tego komponentu uzyskujemy korzyści związane z wydajnością, ponieważ unika się przypisania (droższego) i wykorzystuje konstrukcję kopii. Wydawało mi się, że powinien on być użyty w sekwencji/pojemniku, w którym moglibyśmy mieć znaczną liczbę elementów, a zatem liczba wywołań może mieć duży wpływ.Co to jest komponent raw_storage_iterator używa/zalety w C++
Teoretycznie jest to jasne i wydawało mi się, że ten komponent jest przydatny w przypadku klas typu kontenera. Chciałbym jednak zrozumieć, gdzie powinniśmy użyć tego komponentu (z praktycznymi przykładami) w szczegółach bitowych, aby uzyskać korzyści z wydajności?
inb4 "cplusplus.com jest do bani, nie waż się linkować do niego"; Mówi się, że jest używany, więc możesz użyć niezainicjowanej pamięci jako miejsca docelowego dla algorytmów. Wydajność nie powinna być lepsza niż w przypadku zarezerwowanego wektora z iteratorem wstecznym. Jeśli nie piszesz kodu bardzo niskiego poziomu, nie potrzebujesz tego iteratora. – DanielKO
@ Danielok zarezerwowany wektor z iteratorem wstecznym musi sprawdzać rozmiar w każdej wstawce. Kompilator uznający, że sprawdzanie rozmiaru nie jest potrzebne, jest stosunkowo mało prawdopodobny. Dostaniesz dobre przewidywanie rozgałęzień na czeku, ale nadal będzie ono mniejsze niż pisanie "raw_storage_iterator". – Yakk