Prowadziłem program C++ dla celów naukowych, a teraz patrzę na jego optymalizację.Kontener C++ bardzo efektywny w dodawaniu elementów do końca
Wąskie gardło wydaje się być funkcją, w której muszę układać pary liczb całkowitych. Ich liczba jest niemożliwa do uzyskania od początku, a ja korzystam z std::vector
z niestandardowej struktury zawierającej dwa ints
. Czy istnieje bardziej wydajny kontener danych do powtarzalnego dodawania elementów na końcu? Czy powinienem używać go z dwoma ints
zamiast pary lub niestandardowej struktury?
edycja: Po ustaleniu czasu i profilowaniu mojego programu, mogę powiedzieć, że dla mojego użytku, vector
jest nieco szybszy niż deque
(tylko 3%). Mój świecki wniosek jest taki, że CPU dobrze wykorzystuje bliskość danych. Optymalizacja jest dla mnie bardziej niż kiedykolwiek czarem! A to może pomóc: Naprawdę znacznie poprawiłem mój czas pracy, przełączając generator liczb losowych STL C++ 11 na BOOST.
pokrewne: http://stackoverflow.com/questions/471432/in-which-scenario-do -i-use-a-specific-stl-container – EdChum
Szybki jeden 'std :: list' – Bastien
Jak uzyskać dostęp do danych? Czy chcesz uzyskać do niego dostęp z przodu, z tyłu lub pomiędzy? Ta informacja jest ważna dla określenia pojemnika do użycia. –