ПредишенСледващото

C ++ за начинаещи

2.8. Стандартна гама - вектор

Въпреки, че вграденият набор от формални и осигурява механизъм за контейнера, то е, както видяхме по-горе, не поддържа семантиката на черпене на контейнера. Преди приемането на стандартната C ++ програмирането на това ниво, ние трябваше да си закупите необходимата класа или го изпълни себе си. Сега клас масив е част от стандартна библиотека ++. Само че той не се нарича масив, вектор.
Разбира се, векторът се реализира като шаблон клас. Така че, можем да запишем

Има две съществени разлики между нашия изпълнение на шаблона за Array клас от продажбата на шаблон вектор клас. Първата разлика е, че вектора на подкрепа, тъй като се дават стойности на съществуващите елементи и поставяне на допълнителни елементи, който се разраства динамично по време на изпълнение, ако програмистът е решил да използваме тази възможност за него. Втората разлика е по-радикална, и отразява значителна промяна в парадигмата на проектиране. Вместо да се поддържа голям набор от операции на държавите-членки, приложими към вектора, като вид (), мин (), макс (), да намерите () и така нататък, вектор клас осигурява минимален набор: операция сравнение между половете и по-малко размер () и празна (). По-често срещаните операции изброени по-горе са определени като независими генерични алгоритми.
За да използвате клас вектор трябва да включим съответното заглавния файл.

Точно като нашия клас Array, вектор клас подкрепя работата на индекс за достъп. Ето един пример от повтаряне през всички елементи на вектора:

За тази сортиране, може да използвате и итератор двойка. Итераторът - обект на клас, който поддържа черпене на типа на индекс. Класът на вектора на шаблон определя две функции - членки започват () и край (), за създаване съответно на първия вектор елемент итератор и елемент, който следва последния. Взети заедно, тези две функции определят диапазон векторни елементи. Използване на итератор към предишния пример може да бъде пренаписана, както следва:

Дефиниране на променлива ITER

премества итератор към следващия елемент на вектора. За да получите самия елемент, е необходимо да се прилага операцията вземане на адрес:

За да кандидатствате за сортиране () алгоритъм само за първата половина на вектора, пишем:

Роля итератор двойка също може да играе двойка указатели към вградения масив. Да предположим, че са ни дадени масив:

Подредете цялата решетка да се обадите на сортиране () алгоритъм:

Така че е възможно да се организира първите четири елемента:

За да използвате алгоритмите в необходимостта програмата да се включи заглавния файл

По-долу е пример за програма, с помощта на различни алгоритми, прилагани към типа обект, за вектор:

(Класове вектори, карти и други съдове, за да опише подробно в Глава 6. Ние ще се опитаме да изпълни търсене система текст с помощта на тези класове. В глава 12, смятан генерични алгоритми и приложение дава примери за тяхната употреба.)
Тази глава е много гладко, основните аспекти на програмирането в C ++, обектно-ориентиран подход по отношение на този език, както и използването на стандартната библиотека. В следващите глави ще разгледаме тези въпроси по-подробно и систематично.

Упражнение 2.22

Обяснете на резултатите от всяка от следните дефиниции на вектора:

Упражнение 2.23

Свързани статии

Подкрепете проекта - споделете линка, благодаря!