Programmer’s Reference



страница15/19
Дата21.09.2016
Размер2.35 Mb.
#10416
1   ...   11   12   13   14   15   16   17   18   19

Програмен съвет


Контейнерите , алгоритмите и итераторите работят заедно . Най – добрия начин да разберете това е да видите пример . Следващата програма демонстрира контейнера vector . vector е подобен на масив . Обаче той има предимство че автоматично манипулира свойте размери за съхраняване , нараствайки ако е необходимо . vector предоставя методи за да можете да определите размера му и да добавяте или премахвате елементи . Следващата програма демонстрира използването на класа vector :

// къс пример демонстриращ vector



# include < iostream >

#include < vector >

using namespace std ;



int main ( )

{

vector < int > v ; // създава vector с нулева дължина int i ;

// показва първоначалната дължина на v



cout << “ size = “ << v . size ( ) << endl ;

/* поставя стойности към края на v



vector ще нарасне ако е необходимо */

for ( i = 0 ; i < 10 ; i ++ ) v . push_back ( i ) ;

// показва текущата дължина на v

cout << “ size now = “ << v . size ( ) << endl ;

// можеме да достъпваме съдържанието на vector

// чрез индекс

for ( i = 0 ; i < 10 ; i ++ ) cout << v [ i ] << “ “ ;

cout << endl ;

// можеме да достъпваме първия и последния елемент



cout << “ front = “ << v . front ( ) << endl ;

cout << “ back = “ << v . back ( ) << endl ;

// достъп чрез итератор

vector < int > : : iterator p = v . begin ( ) ;

while ( p != v . end ( ) ) {

cout << * p << “ “ ;

p++ ;

}



return 0 ;

}

Изхода от тази програма е :

size = 0

size now = 10

0 1 2 3 4 5 6 7 8 9

front = 0

back = 9

0 1 2 3 4 5 6 7 8 9

В тази програма вектора е първоначално създаден с нулева дължина . Член функцията push_back ( ) слага стойности в края на вектора , увеличавайки размера му ако е необходимо . Функцията size ( ) показва размера на вектора . Вектора може да бъде индексиран като нормален масив . Също може да бъде достъпван чрез итератор . Функцията begin ( ) връща итератор към началото на вектора . Функцията end ( ) връща итератор към края на вектора . От друга страна : Забележете как е деклариран итератора p . Типа iterator е дефиниран за няколко контейнерни класа .


Контейнерни класове


Контейнерите дефинирани от STL са показани тук :

Контейнер Описание Изискван хедър

bitset Множество от битове < bitset >

deque Опашка с два края < deque >

list Линеен списък < list >

map Съхранява двойки < map >

ключ / стойност в

които на един ключ

могат да отговарят две

или повече стойности

multimap Съхранява двойки < map >

ключ / стойност в

които на един ключ

могат да отговарят две

или повече стойности

multiset Множество в което всеки < set >

елемент не е необходимо

да е уникален

priority_queue Опашка с приоритети < queue >

queue Опашка < queue >

set Множество в което < set >

всеки елемент е уникален



stack Стек < stack >

vector Динамичен масив < list >

Класа string който управлява символните низове е също контейнер но е обсъден в Глава 15 . Всеки от контейнерите е обобщен в следващите секции . Понеже контейнерите са изпълнени чрез шаблонни класове се използват различни типове съхранители на данни . В описанията , общия тип Т представя типа на данните съхранявани от контейнера , а Size представя някакъв целочислен тип . Понеже имената на съхранителните типове в шаблонен клас са произволни , контейнерините класове декларират typedef версии на тези типове . Това прави имената на типовете конкретни . Някой от най – общите typedef имена са показани тук :



size_type Някакъв целочислен тип

eквивалентен на size_t



reference Псевдоним на елемент

const_reference const псевдоним на

елемент

iterator Итератор

const_iterator const итератор

reverse_iterator Обратен итератор const_reverse_iterator const обратен итератор value_type Тип на стойността

съхранявана в контейнер



allocator_type Типа на алокатора

key_type Типа на ключа

key_compare Типа на функцията която

сравнява два ключа



value_compare Типа на функцията която

сравнява две стойности




Каталог: books
books -> Тайнствената сила на пирамидите Богомил Герасимов Страхът на времето
books -> В обятията на шамбала
books -> Книга се посвещава с благодарност на децата ми. Майка ми и жена ми ме научиха да бъда мъж
books -> Николай Слатински “Надеждата като лабиринт” София, Издателство “виденов & син”, 1993 год
books -> София, Издателство “Българска книжница”, 2004 год. Рецензенти доц д. ик н. Димитър Йончев, проф д-р Нина Дюлгерова Научен редактор проф д-р Петър Иванов
books -> Николай Слатински “Измерения на сигурността” София, Издателство “Парадигма”, 2000 год
books -> Книга 2 щастие и успех предисловие
books -> Превръщане на числа от една бройна система в друга
books -> Тантриското преобразяване


Сподели с приятели:
1   ...   11   12   13   14   15   16   17   18   19




©obuch.info 2024
отнасят до администрацията

    Начална страница