3. insertjterator
Jakie są założenia algorytmów w STL?
Algorytmy te mają charakter ogólny - nie są pisane z myślą o konkretnej strukturze danych. Operują na sekwencjach elementów wyznaczonych przez parę iteratorów, z których pierwszy wskazuje na początkowy element, a drugi - za ostatnim elementem. Dlaczego sort() z STL jest szybszy, niż qsort() z C?
1. Mechanizm porównywania przekazujemy do qsort() za pośrednictwem wskaźnika do funkcji. Jej wywoływanie przez to zajmuje trochę czasu. W STL-u operacja porównania jest rozwijana na miejscu już w momencie kompilacji.
2. W STL-u nie mamy w tym miejscu żadnego rzutowania typów z void*.
Was steht fur ein Manipulator?
Element sterujący strumieni. Rodzaje manipulatorów:
1. Włączanie flag
2. Wyłączanie flag
3. Podstawa systemu liczbowego
4. Rodzaj formatu zmiennopozycyjnego
5. Wyrównywanie
6. Sterowanie wyjściem
7. Parametryzowane
Do czego służy „volatile”?
Informuje kompilator, że wykorzystanie tej zmiennej nie może być optymalizowane np. przez czasowe przeniesienie jej do rejestru procesora bądź cache, gdyż istnieje prawdopodobieństwo, że może być ona w tym samym czasie zmodyfikowana przez inny wątek, co prowadziłoby oczywiście do nieścisłości w wykonywanym programie.
Do czego służy „mutable”?
Informuje, że dane pole obiektu może być zmieniane nawet przez metody const lub gdy obiekt przekazywany jest jako parametr typu const.
Do czego służy „register”?
Informacja dla kompilatora, że zmienna powinna być optymalizowana poprzez przeniesienie jej do rejestru. Obecnie ignorowana w zasadzie przez każdy kompilator.
Do czego służy „auto”?
Deklaruje zmienną lokalną dodatkowo automatycznie wybiera typ na podstawie podanej wartości. Dzisiaj w zasadzie nieużywany.
11 z 13