Programmer’s Reference


bitset поддържа операции върху множество от битове . Неговата шаблонна спецификация е : template



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

bitset


Класа bitset поддържа операции върху множество от битове . Неговата шаблонна спецификация е :

template < size_t N > class bitset

Тук , N определя дължината на bitset в битове . Той има следните конструктори :

bitset ( ) ;



bitset ( unsigned long bits ) ;

explicit bitset ( const string &s , size_t i = 0 , size_t num = -1 );

Първата форма конструира празен bitset . Втората форма конструира bitset който има собствено множество битове съгласно тези определени в bits . Третата форма конструира bitset чрез използване на низа s , започвайки от i . Низа трябва да съдържа само единици или нули . Само num или s.size ( ) – i стойности се използват , което е по – малко . Извеждащите оператори << и >> се дефинират за bitset . bitset съдържа следните член – функции :



Член Описание

bool any ( ) const ; Връща true ако всеки бит в

извиквания bitset e 1 ; в

противен случай връща 0

size_type count ( ) const ; Връща броя на битовете с 1

bitset < N > &flip ( ) ; Инвертира състоянието на

всички битове в извиквания

bitset и връща *this

bitset < N > &flip ( size_t i ) ; Инвертира бита на позиция i

в извикания bitset и връща *this



bool none ( ) const ; Връща true ако няма установени

битове в извикания bitset



bool operator != ( const bitset &op2 ) Връща true ако извикания bitset

const ; се различава от този определен

в дясната страна на оператора



op2

bool operator == ( const bitset &op2 ) Връща true ако извикания bitset

const ; е еднакъв със този определен

в дясната страна на оператора



op2

bitset Операция AND върху всеки бит

&operator &= ( const bitset &op2 ); на извикания bitset със

съответния бит в op2 и поставя

резултата в извикания bitset ;

връща *this



bitset Операция XOR върху всеки бит

&operator ^ = ( const bitset &op2 ); на извикания bitset със

съответния бит в op2 и поставя

резултата в извикания bitset ;

връща *this



bitset Операция OR върху всеки бит

&operator | = ( const bitset &op2 ); на извикания bitset със

съответния бит в op2 и поставя

резултата в извикания bitset ;

връща *this



bitset &operator ~ = ( ) const ; Инвертира състоянието на

всички битове в извикания



bitset и връща *this

bitset &operator << = ( size_t num ) ; Премества наляво всеки бит в извикания bitset на num позиции

и поставя резултата в извикания



bitset ; връща *this

bitset &operator >> = ( size_t num ) ; Премества надясно всеки бит в извикания bitset на num позиции

и поставя резултата в извикания



bitset ; връща *this

reference operator [ ] ( size_type i ) ; Връща псевдоним за бит i в

извикания bitset



bitset &reset ( ) ; Изчиства всички битове в извикания bitset и връща *this

bitset &reset ( size_t i ) ; Изчиства битa на позиция i в извикания bitset и връща *this

bitset &set ( ) ; Установява всички битове в извикания bitset и връща *this

bitset &set ( size_t i , int val = 1 ) ; Установява битa на позиция i на стойността определена от val в извикания bitset и връща *this

Всяка ненулева стойност за val

е приета да бъде 1

size_t size ( ) const ; Връща броя на битовете който може да съдържа дадения bitset

bool test ( size_t i ) ; Връща състоянието на бита на позиция i

string to_string ( ) const ; Връща низ който съдържа представяне на битовия шаблон в извикания bitset

unsigned long to_ulong ( ) const ; Конвертира извикания bitset в unsigned long integer

deque


Класа deque поддържа опашка със два края . Неговата шаблонна спецификация е :

template < class T , class Allocator = allocator < T >>



class deque

Тук Т е типа данни съхранявани в deque . Той има следните конструктори :



explicit deque ( const Allocator &a = Allocator ( ) ) ;

explicit deque ( size_type num , const T &val = T ( ) ,

const Allocator &a = Allocator ( ) ) ;

deque ( const deque < T , Allocator > &ob ) ;

template < class InIter > deque ( InIter start , InIter end ,

const Allocator &a = Allocator ( ) ) ;

Първата форма конструира празна deque . Втората форма конструира deque която има num елемента със стойност val . Tретата форма изгражда deque koято има еднакви елементи със ob . Четвъртата форма изгражда опашка която съдържа елементите в интервала определен от start и end . Следващите сравнителни оператори са дефинирани за deque : = = , < , < = , ! = , > и > =



deque съдържа следните член функции:

Член Описание

template < class InIter > Присвоява на deque поредицата

void assign ( InIter start , InIter end ) ; дефинирана от start и end

template < class Size , class T > Присвоява на deque num

void assign ( Size num , елемента със стойност val

const T &val = T ( ) ) ;

reference at ( size_type i ) ; Връща псевдоним за елемента

const_reference at ( size_type i ) const ; определен чрез i

reference back ( ) ; Връща псевдоним за последния

const_reference back ( ) const ; елемент в deque

iterator begin ( ) ; Връща итератор за първия

const_iterator begin ( ) const ; елемент в deque

void clear ( ) ; Премахва всички елементи

от deque

bool empty ( ) const ; Връща true ако извиканата deque

е празна и false в противен случай

iterator end ( ) ; Връща итератор към края

const_iterator end ( ) const ; на deque

iterator erase ( iterator i ) ; Премахва елемента указван от i

връща итератор към елемента

след премахнатия

iterator erase ( iterator start , iterator end ) ; Премахва елементите в

интервала start – end ,връща итератор към елемента след последния премахнат елемент



reference front ( ) ; Връща псевдоним към първия

const_reference front ( ) const ; елемент на deque

allocator_type get_allocator ( ) const ; Връща алокатор за deque

iterator insert ( iterator i , Вмъква val непосредствено

const T &val = T ( ) ) ; преди елемента определен от i

Връща се итератор към елемента void insert ( iterator i , size_type num , Вмъква num копия от val

const T &val ) ; непосредствено преди елемента

определен от i



template < class InIter > Вмъква поредицата определена

void insert ( iterator i , от start – end непосредствено

InIter start , InIter end ) ; преди елемента определен

от i



size_type max_size ( ) const ; Връща максималния брой

елементи които може да

съдържа deque

reference operator [ ] ( size_type i ) const ; Връща псевдоним за i - тия

const_reference елемент

operator [ ] ( size_type i ) const ;

void pop_back ( ) ; Премахва последния елемент

в deque



void pop_front ( ) ; Премахва първия елемент

в deque



void push_back ( const T &val ) ; Добавя елемент със стойност

val към края на deque



void push_front ( const T &val ) ; Добавя елемент със стойност

val към началото на deque



reverse_iterator rbegin ( ) ; Връща обратен итератор към

const_reverse_iterator rbegin ( ) const ; края на deque

reverse_iterator rend ( ) ; Връща обратен итератор към

const_reverse_iterator rend ( ) const ; началото на deque

void resize ( size_type num , Променя размера на deque kъм

T val = T ( ) ) ; този определен от num . Aко

deque трябва да бъде удължена ,

тогава елементите със стойността

определена от val се добавят

към края


size_type size ( ) const ; Връща текущия брой елементи

в deque



void swap ( deque < T , Allocator > &ob ) ; Разменя елементите съхранявани

в извикваната deque със тези

в ob

list


Класа list поддържа списък . Неговата шаблонна спецификация е :

template < class T , class Allocator = allocator < T >>



class list

Тук Т е типа данни съхранявани в списъка . Той има следните конструктори :



explicit list ( const Allocator &a = Allocator ( ) ) ;

explicit list ( size_type num , const T &val = T ( ) ,

const Allocator &a = Allocator ( ) ) ;

list ( const list < T , Allocator > &ob ) ;

template < class InIter > list ( InIter start , InIter end ,

const Allocator &a = Allocator ( ) ) ;

Първата форма конструира празен списък . Втората форма конструира списък който има num елемента със стойност val . Tретата форма изгражда списък който има еднакви елементи със ob . Четвъртата форма изгражда списък който съдържа елементите в интервала определен от start и end . Следващите сравнителни оператори са дефинирани за list : = = , < , < = , ! = , > и > =



list съдържа следните член функции :

Член Описание

template < class InIter > Присвоява на списъка

void assign ( InIter start , InIter end ) ; поредицата дефинирана от start и end

template < class Size , class T > Присвоява на списъка num

void assign ( Size num , елемента със стойност val

const T &val = T ( ) ) ;

reference back ( ) ; Връща псевдоним за последния

const_reference back ( ) const ; елемент в списъка

iterator begin ( ) ; Връща итератор за първия

const_iterator begin ( ) const ; елемент в списъка

void clear ( ) ; Премахва всички елементи

от списъка

bool empty ( ) const ; Връща true ако извикания списък

е празен и false в противен случай

iterator end ( ) ; Връща итератор към края

const_iterator end ( ) const ; на списъка

iterator erase ( iterator i ) ; Премахва елемента указван от i

връща итератор към елемента

след премахнатия

iterator erase ( iterator start , iterator end ) ; Премахва елементите в

интервала startend ,връща итератор към елемента след последния премахнат елемент



reference front ( ) ; Връща псевдоним към първия

const_reference front ( ) const ; елемент на списъка

allocator_type get_allocator ( ) const ; Връща алокатор за списъка

iterator insert ( iterator i , Вмъква val непосредствено

const T &val = T ( ) ) ; преди елемента определен от i

Връща се итератор към елемента void insert ( iterator i , size_type num , Вмъква num копия от val

const T &val ) ; непосредствено преди елемента

определен от i



template < class InIter > Вмъква поредицата определена

void insert ( iterator i , от startend непосредствено

InIter start , InIter end ) ; преди елемента определен

от i



size_type max_size ( ) const ; Връща максималния брой

елементи които може да

съдържа списъка

void merge ( list < T , Allocator > &ob ) ; Слива подредения списък

template < class Comp > съдържан в ob със подредения

void merge ( list < T , Allocator > &ob извикван списък . Резултатния

Comp cmpfn ) ; списък е подреден . След

сливането , списъка съдържан

от ob e празен . Във втората

форма сравнителната функция

може да бъде определена така

че да определя кога един

елемент е по – малък от друг

void pop_back ( ) ; Премахва последния елемент

в списъка



void pop_front ( ) ; Премахва първия елемент

в списъка



void push_back ( const T &val ) ; Добавя елемент със стойност

val към края на списъка



void push_front ( const T &val ) ; Добавя елемент със стойност

val към началото на списъка



reverse_iterator rbegin ( ) ; Връща обратен итератор към

const_reverse_iterator rbegin ( ) const ; края на списъка

void remove ( const T &val ) ; Премахва елементите със

стойност val от списъка



template < class UnPred > Премахва елементите за които

void remove_if ( UnPred pr ) ; унарния предикат pr e true

const T &val = T ( ) ) ;

reverse_iterator rend ( ) ; Връща обратен итератор към

const_reverse_iterator rend ( ) const ; началото на списъка

void resize ( size_type num , Променя размера на списъка kъм

T val = T ( ) ) ; този определен от num . Aко

списъка трябва да бъде удължен,

тогава елементите със стойността

определена от val се добавят

към края

void reverse ( ) ; Обръща извиквания списък

size_type size ( ) const ; Връща текущия брой елементи

в списъка

void sort ( ) ; Сортира списъка . Втората форма

template < class Comp > сортира списъка използвайки

void sort ( Comp cmpfn ) ; сравнителната функция fn за

определяне кога един елемент е

по – малък от друг

void splice ( iterator i , Съдържанието на ob се вмъква



list < T , Allocator > &ob ) ; в извиквания списък на

позицията определена от i . След

операцията ob е празен

void splice ( iterator i , Елемента указван от el е



list < T , Allocator > &ob , премахнат от списъка ob и

iterator el ) ; съхранен в извиквания списък на позицията определена от i .

void splice ( iterator i , Интервала определен от start и

list < T , Allocator > &ob , end e премахнат от ob и

iterator start , iterator end ) ; съхранен в извиквания списък

започвайки от позицията определена от i

void swap ( list < T , Allocator > &ob ) ; Разменя елементите съхранявани

в извиквания списък със тези

в ob

void unique ( ) ; Премахва дублиращите се

template < class BinPred > елементи от извиквания списък .

void unique ( BinPred pr ) ; Втората форма използва pr за да

определи уникалността


map


Класа map поддържа асоциативен контейнер в който уникални ключове се съпоставят на стойности . Неговата шаблонна спецификация е :

template < class Key , class T , class Comp = less < Key > ,

class Allocator = allocator < T >> class map

Тук , Key е типа данни на ключовете , Т е типа данни на стойностите които ще се съхраняват ( съпоставят ) и Comp e функция която сравнява два ключа . Той има следните конструктори :



explicit map ( const Comp &cmpfn = Comp ( ) ,

const Allocator &a = Allocator ( ) ) ;

map ( const map < Key , T , Comp , Allocator > &ob ) ;

template < class InIter > map ( InIter start , InIter end ,

const Comp &cmpfn = Comp ( ) ,

const Allocator &a = Allocator ( ) ) ;

Първата форма конструира празнa карта . Втората форма изгражда карта която съдържа еднакви елементи със ob . Третата форма изгражда карта която съдържа елементите в интервала определен от start и end . Функцията определена чрез cmpfn , ako е представена , определя нареждането на картата Следващите сравнителни оператори са дефинирани за map : = = , < , < = , ! = , > и > =

Тук са показани член – функциите на map . В описанията , key_type e типа на ключа , а value_type представя pair < Key , T > :

Член Описание

iterator begin ( ) ; Връща итератор за първия

const_iterator begin ( ) const ; елемент в картата

void clear ( ) ; Премахва всички елементи

от картата

size_type count ( const key_type &k ) Връща броя на срещанията на



const ; к в картата ( 1 или 0 )

bool empty ( ) const ; Връща true ако извиканата карта

е празна и false в противен случай

iterator end ( ) ; Връща итератор към края

const_iterator end ( ) const ; на картата

pair < iterator , iterator > Връща двойка итератори които



equal_range ( const key_type &k ) ; указват първия и последния

pair < const_iterator , const_iterator > елемент в картата която съдържа

equal_range ( const key_type &k ) const ; определен ключ

void erase ( iterator i ) ; Премахва елемента указван от i

void erase ( iterator start , iterator end ) ; Премахва елементите в

интервала start – end



size_type erase ( const key_type &k ) ; Премахва от картата елементите

които имат ключове със стойност к



iterator find ( const key_type &k ) ; Връща итератор към определен

const_iterator find ( const key_type &k ) ключ . Ако ключа не е открит се

const ; връща итератор към края на

картата


allocator_type get_allocator ( ) const ; Връща алокатор за картата

iterator insert ( iterator i , Вмъква val на или след

const value_type &val ) ; елемента определен от i .

Връща се итератор към елемента



template < class InIter > Вмъква интервал от елементи

void insert ( InIter start , InIter end ) ;

pair < iterator , bool > Вмъква val в извикваната карта .

insert ( const value_type &val ) ; Връща се итератор към елемента

Елемента се вмъква ако още не

е съществувал . Ако елемента се

вмъкне се връща двойка



< iterator , true > . В противен случай се връща

< iterator , false >

key_compare key_comp ( ) const ; Връща функция обект която

сравнява ключове

iterator lower_bound ( const key_type &k ) ; Връща итератор към първия

const_iterator елемент в картата със ключ

lower_bound ( const key_type &k ) const ; равен или по – голям от к

size_type max_size ( ) const ; Връща максималния брой

елементи които може да

съдържа картата

reference operator[ ] ( const key_type &i ) ; Връща псевдоним за елемента

определен от i . Ako този

елемент не съществува , той

се вмъква



reverse_iterator rbegin ( ) ; Връща обратен итератор към

const_reverse_iterator rbegin ( ) const ; края на картата

reverse_iterator rend ( ) ; Връща обратен итератор към

const_reverse_iterator rend ( ) const ; началото на картата

size_type size ( ) const ; Връща текущия брой елементи

в картата

void swap ( map < Key , T , Comp , Разменя елементите съхранявани



Allocator > &ob ) ; в извикваната карта със тези

в ob

iterator upper_bound ( const key_type &k ) ; Връща итератор към първия

const_iterator елемент в картата със ключ

upper_bound ( const key_type &k ) const ; по – голям от к

value_compare value_comp ( ) const ; Връща функция обект която

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



multimap


Класа multimap поддържа асоциативен контейнер в който е възможно еднакви ключове да се съпоставят на стойности . Неговата шаблонна спецификация е :

template < class Key , class T , class Comp = less < Key > ,

class Allocator = allocator < T >> class multimap

Тук , Key е типа данни на ключовете , Т е типа данни на стойностите които ще се съхраняват ( съпоставят ) и Comp e функция която сравнява два ключа . Той има следните конструктори :



explicit multimap ( const Comp &cmpfn = Comp ( ) ,

const Allocator &a = Allocator ( ) ) ;

multimap ( const multimap < Key , T , Comp , Allocator > &ob ) ;

template < class InIter > multimap ( InIter start , InIter end ,

const Comp &cmpfn = Comp ( ) ,

const Allocator &a = Allocator ( ) ) ;

Първата форма конструира празен multimap . Втората форма изгражда multimap която съдържа еднакви елементи със ob . Третата форма изгражда multimap която съдържа елементите в интервала определен от start и end . Функцията определена чрез cmpfn , ako е представена , определя нареждането на multimap Следващите сравнителни оператори са дефинирани за multimap : = = , < , < = , ! = , > и > =

Тук са показани член – функциите на multimap . В описанията , key_type e типа на ключа , T e стойността , а value_type представя pair < Key , T > :

Член Описание

iterator begin ( ) ; Връща итератор за първия

const_iterator begin ( ) const ; елемент в multimap

void clear ( ) ; Премахва всички елементи

от multimap

size_type count ( const key_type &k ) Връща броя на срещанията на



const ; к в multimap

bool empty ( ) const ; Връща true ако извикания

multimap е празeн и false в противен случай

iterator end ( ) ; Връща итератор към края



const_iterator end ( ) const ; на multimap

pair < iterator , iterator > Връща двойка итератори които



equal_range ( const key_type &k ) ; указват първия и последния

pair < const_iterator , const_iterator > елемент в multimap който

equal_range ( const key_type &k ) const ; съдържа определен ключ

void erase ( iterator i ) ; Премахва елемента указван от i

void erase ( iterator start , iterator end ) ; Премахва елементите в

интервала startend



size_type erase ( const key_type &k ) ; Премахва от multimap

елементите които имат ключове със стойност к



iterator find ( const key_type &k ) ; Връща итератор към определен

const_iterator find ( const key_type &k ) ключ . Ако ключа не е открит се

const ; връща итератор към края на

multimap



allocator_type get_allocator ( ) const ; Връща алокатор за multimap

iterator insert ( iterator i , Вмъква val на или след

const value_type &val ) ; елемента определен от i .

Връща се итератор към елемента



template < class InIter > Вмъква интервал от елементи

void insert ( InIter start , InIter end ) ;

iterator insert ( const value_type &val ) ; Вмъква val в извиквания

multimap

key_compare key_comp ( ) const ; Връща функция обект която

сравнява ключове

iterator lower_bound ( const key_type &k ) ; Връща итератор към първия

const_iterator елемент в multimap със ключ

lower_bound ( const key_type &k ) const ; равен или по – голям от к

size_type max_size ( ) const ; Връща максималния брой

елементи които може да

съдържа multimap

reverse_iterator rbegin ( ) ; Връща обратен итератор към

const_reverse_iterator rbegin ( ) const ; края на multimap

reverse_iterator rend ( ) ; Връща обратен итератор към

const_reverse_iterator rend ( ) const ; началото на multimap

size_type size ( ) const ; Връща текущия брой елементи

в multimap

void swap ( multimap < Key , T , Comp , Разменя елементите съхранявани



Allocator > &ob ) ; в извиквания multimap със тези

в ob

iterator upper_bound ( const key_type &k ) ; Връща итератор към първия

const_iterator елемент в multimap със ключ

upper_bound ( const key_type &k ) const ; по – голям от к

value_compare value_comp ( ) const ; Връща функция обект която

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


multiset


Класа multiset поддържа множество в което е възможно еднакви ключове да се съпоставят на стойности . Неговата шаблонна спецификация е :

template < class Key , class Comp = less < Key > ,

class Allocator = allocator < Key >> class multiset

Тук , Key е типа данни на ключовете , a Comp e функция която сравнява два ключа . Той има следните конструктори :



explicit multiset ( const Comp &cmpfn = Comp ( ) ,

const Allocator &a = Allocator ( ) ) ;

multiset ( const multiset < Key , Comp , Allocator > &ob ) ;

template < class InIter > multiset ( InIter start , InIter end ,

const Comp &cmpfn = Comp ( ) ,

const Allocator &a = Allocator ( ) ) ;

Първата форма конструира празен multiset . Втората форма изгражда multiset който съдържа еднакви елементи със ob . Третата форма изгражда multiset който съдържа елементите в интервала определен от start и end . Функцията определена чрез cmpfn , ako е представена , определя нареждането на множеството . Следващите сравнителни оператори са дефинирани за multiset : = = , < , < = , ! = , > и > =

Тук са показани член – функциите на multiset . В описанията , и двете key_type и value_type са typedef за Key :

Член Описание

iterator begin ( ) ; Връща итератор за първия

const_iterator begin ( ) const ; елемент в multiset

void clear ( ) ; Премахва всички елементи

от multiset

size_type count ( const key_type &k ) Връща броя на срещанията на



const ; к в multiset

bool empty ( ) const ; Връща true ако извикания

multiset е празeн и false в противен случай

iterator end ( ) ; Връща итератор към края



const_iterator end ( ) const ; на multiset

pair < iterator , iterator > Връща двойка итератори които



equal_range ( const key_type &k ) const ; указват първия и последния

елемент в multiset който

съдържа определен ключ

void erase ( iterator i ) ; Премахва елемента указван от i

void erase ( iterator start , iterator end ) ; Премахва елементите в

интервала start – end



size_type erase ( const key_type &k ) ; Премахва от multiset елементите

които имат ключове със стойност к



iterator find ( const key_type &k ) const ; Връща итератор към определен

ключ . Ако ключа не е открит се

връща итератор към края на

multiset



allocator_type get_allocator ( ) const ; Връща алокатор за multiset

iterator insert ( iterator i , Вмъква val на или след

const value_type &val ) ; елемента определен от i .

Връща се итератор към елемента



template < class InIter > Вмъква интервал от елементи

void insert ( InIter start , InIter end ) ;

iterator insert ( const value_type &val ) ; Вмъква val в извиквания

multiset

Връща се итератор към елемента



key_compare key_comp ( ) const ; Връща функция обект която

сравнява ключове

iterator lower_bound ( const key_type &k ) Връща итератор към първия

const ; елемент в multiset със ключ

равен или по – голям от к



size_type max_size ( ) const ; Връща максималния брой

елементи които може да

съдържа multiset

reverse_iterator rbegin ( ) ; Връща обратен итератор към

const_reverse_iterator rbegin ( ) const ; края на multiset

reverse_iterator rend ( ) ; Връща обратен итератор към

const_reverse_iterator rend ( ) const ; началото на multiset

size_type size ( ) const ; Връща текущия брой елементи

в multiset

void swap ( multiset < Key , Comp , Разменя елементите съхранявани



Allocator > &ob ) ; в извиквания multiset със тези

в ob

iterator upper_bound ( const key_type &k ) Връща итератор към първия

const ; елемент в multiset със ключ

по – голям от к



value_compare value_comp ( ) const ; Връща функция обект която

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


queue


Класа queue поддържа опашка със един край . Неговата шаблонна спецификация е :

template < class T , class Container = deque < T >>



class queue

Тук Т е типа данни които се съхраняват , а Container e типа контейнер използван да съдържа опашката . Той има следния конструктор :



explicit queue ( const Container &cnt = Container ( ) ) ;

Конструктора queue ( ) създава празна опашка . По – подразбиране той използва deque като контейнер , но queue може само да бъде достъпвана по FIFO начин Също можете да използвате list като контейнер за опашка . Контейнера се съдържа в защитен обект наречен c от тип Container . Следващите сравнителни оператори са дефинирани за queue : = = , < , < = , ! = , > и > =



queue съдържа следните член – функции :

Член Описание

value_type &back ( ) ; Връща псевдоним за последния

const value_type &back ( ) const ; елемент в опашката

bool empty ( ) const ; Връща true ако извиканата

опашка е празна и false в противен случай



value_type &front ( ) ; Връща псевдоним за първия

const value_type &front ( ) const ; елемент в опашката

void pop ( ) ; Премахва първия елемент

в опашката



void push ( const T &val ) ; Добавя елемент със стойност

val към края на опашката



size_type size ( ) const ; Връща текущия брой елементи

в опашката


priority_queue


Класа priority_queue поддържа приоритетна опашка със един край . Неговата шаблонна спецификация е :

template < class T , class Container = vector < T > ,



class Comp = less < Container : : value_type >>

class priority_queue

Тук Т е типа на съхраняваните данни . Container e типа контейнер използван да съдържа опашката , а Comp определя сравнителната функция която определя кога един член на приоритетната опашка е със по – нисък приоритет от друг . Той има следните конструктори :



explicit priority_queue ( const Comp &cmpfn = Comp ( ) ,

Container &cnt = Container ( ) ) ;

template < class InIter > priority_queue ( InIter start , InIter

end , const Comp &cmpfn = Comp ( ) ,

Container &cnt = Container ( ) ) ;

Първия priority_queue ( ) конструктор създава празна приоритетна опашка . Втория изгражда опашка която съдържа елементите в интервала определен от start и end . По – подразбиране той използва vector като контейнер . Може да използвате deque като контейнер за опашка . Контейнера се съдържа в защитен обект наречен c от тип Container . priority_queue съдържа следните

член – функции :

Член Описание

bool empty ( ) const ; Връща true ако извиканата

приоритетна опашка е празна и false в противен случай



void pop ( ) ; Премахва първия елемент

в приоритетната опашка



void push ( const T &val ) ; Добавя елемент към приоритетната опашка

size_type size ( ) const ; Връща текущия брой елементи

в приоритетната опашка



value_type &top ( ) ; Връща псевдоним за елементa

const_value_type &top ( ) const ; с най – висок приоритет . Елемента не се премахва

set


Класа set поддържа множество в което е възможно уникални ключове да се съпоставят на стойности . Неговата шаблонна спецификация е :

template < class Key , class Comp = less < Key > ,

class Allocator = allocator < Key >> class set

Тук , Key е типа данни на ключовете , a Comp e функция която сравнява два ключа . Той има следните конструктори :



explicit set ( const Comp &cmpfn = Comp ( ) ,

const Allocator &a = Allocator ( ) ) ;

set ( const multiset < Key , Comp , Allocator > &ob ) ;

template < class InIter > set ( InIter start , InIter end ,

const Comp &cmpfn = Comp ( ) ,

const Allocator &a = Allocator ( ) ) ;

Първата форма конструира празно множество . Втората форма изгражда множество което съдържа еднакви елементи със ob . Третата форма изгражда множество което съдържа елементите в интервала определен от start и end . Функцията определена чрез cmpfn , ako е представена , определя нареждането на множеството . Следващите сравнителни оператори са дефинирани за set : = = , < , < = , ! = , > и > =

Тук са показани член – функциите на set . В описанията , и двете key_type и value_type са typedef за Key :

Член Описание

iterator begin ( ) ; Връща итератор за първия

const_iterator begin ( ) const ; елемент в множеството

void clear ( ) ; Премахва всички елементи

от множеството

size_type count ( const key_type &k ) Връща броя на срещанията на



const ; к в множеството

bool empty ( ) const ; Връща true ако извиканото

множеството е празно и false в противен случай

iterator end ( ) ; Връща итератор към края

const_iterator end ( ) const ; на списъка

pair < iterator , iterator > Връща двойка итератори които



equal_range ( const key_type &k ) const ; указват първия и последния

елемент в множеството което

съдържа определен ключ

void erase ( iterator i ) ; Премахва елемента указван от i

void erase ( iterator start , iterator end ) ; Премахва елементите в

интервала start – end



size_type erase ( const key_type &k ) ; Премахва от множеството елементите които имат ключове със стойност к . Връща се броя на премахнатите елементи

iterator find ( const key_type &k ) const ; Връща итератор към определен

ключ . Ако ключа не е открит се

връща итератор към края на

множеството



allocator_type get_allocator ( ) const ; Връща алокатор за множеството

iterator insert ( iterator i , Вмъква val на или след

const value_type &val ) ; елемента определен от i .

Дублиращите се елементи не се

вмъкват . Връща се итератор

към елемента



template < class InIter > Вмъква интервал от елементи .

void insert ( InIter start , InIter end ) ; Дублиращите се елементи не се

вмъкват


pair < iterator , bool > Вмъква val в извикваното

insert ( const value_type &val ) ; множество . Връща се итератор към елемента . Елемента се вмъква ако все още не е съществувал . Ако елемента се

вмъкне се връща двойка



< iterator , true > . В противен случай се връща

< iterator , false >

key_compare key_comp ( ) const ; Връща функция обект която

сравнява ключове

iterator lower_bound ( const key_type &k ) Връща итератор към първия

const ; елемент в множеството със

ключ равен или по – голям от к



size_type max_size ( ) const ; Връща максималния брой

елементи които може да

съдържа множеството

reverse_iterator rbegin ( ) ; Връща обратен итератор към

const_reverse_iterator rbegin ( ) const ; края на множеството

reverse_iterator rend ( ) ; Връща обратен итератор към

const_reverse_iterator rend ( ) const ; началото на множеството

size_type size ( ) const ; Връща текущия брой елементи

в множеството

void swap ( multiset < Key , Comp , Разменя елементите съхранявани



Allocator > &ob ) ; в извикваното множество със

тези в ob

iterator upper_bound ( const key_type &k ) Връща итератор към първия

const ; елемент в множеството със

ключ по – голям от к



value_compare value_comp ( ) const ; Връща функция обект която

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



stack


Класа stack поддържа стек . Неговата шаблонна спецификация е :

template < class T , class Container = deque < T >>



class stack

Тук Т е типа на съхраняваните данни , а Container e типа контейнер използван да съдържа опашката . Той има следния конструктор :



explicit stack ( const Container &cnt = Container ( ) ) ;

Конструктора stack ( ) създава празeн стек . По – подразбиране той използва deque като контейнер , но stack може само да бъде достъпван по LIFO начин Контейнера се съдържа в защитен обект наречен c от тип Container . Следващите сравнителни оператори са дефинирани за stack : = = , < , < = , ! = , > и > =



stack съдържа следните член – функции :

Член Описание

bool empty ( ) const ; Връща true ако извикания стек

е празен и false в противен случай



void pop ( ) ; Премахва върха на стека който технически е последния елемент

в контейнера



void push ( const T &val ) ; Слага елемент към края на стека

Последния елемент в контейнера

представлява върха на стека

size_type size ( ) const ; Връща текущия брой елементи

в стека


value_type &top ( ) ; Връща псевдоним за върха на

const_value_type &top ( ) const ; стека , който е последния елемент в контейнера . Елемента не се премахва

vector


Класа vector поддържа динамичен масив . Неговата шаблонна спецификация е :

template < class T , class Allocator = allocator < T >>



class vector

Тук Т е типа на съхраняваните данни , а Allocator определя алокатора . Той има следните конструктори :



explicit vector ( const Allocator &a = Allocator ( ) ) ;

explicit vector ( size_type num , const T &val = T ( ) ,

const Allocator &a = Allocator ( ) ) ;

vector ( const vector < T , Allocator > &ob ) ;

template < class InIter > vector ( InIter start , InIter end ,

const Allocator &a = Allocator ( ) ) ;

Първата форма конструира празен вектор . Втората форма конструира вектор който има num елемента със стойност val . Tретата форма изгражда вектор който има еднакви елементи със ob . Четвъртата форма изгражда вектор който съдържа елементите в интервала определен от start и end . Следващите сравнителни оператори са дефинирани за vector : = = , < , < = , ! = , > и > =



vector cъдържа следните член функции :

Член Описание

template < class InIter > Присвоява на вектора поредицата

void assign ( InIter start , InIter end ) ; дефинирана от start и end

template < class Size , class T > Присвоява на вектора num

void assign ( Size num , елемента със стойност val

const T &val = T ( ) ) ;



reference at ( size_type i ) ; Връща псевдоним за елемента

const_reference at ( size_type i ) const ; определен чрез i

reference back ( ) ; Връща псевдоним за последния

const_reference back ( ) const ; елемент във вектора

iterator begin ( ) ; Връща итератор за първия

const_iterator begin ( ) const ; елемент във вектора

size_type capacity ( ) const ; Връща текущия капацитет на

вектора . Това е броя елементи

които може да съдържа преди

да трябва да заделя повече памет

void clear ( ) ; Премахва всички елементи

от вектора



bool empty ( ) const ; Връща true ако извикания вектор е празен и false в противен случай

iterator end ( ) ; Връща итератор към края



const_iterator end ( ) const ; на вектора

iterator erase ( iterator i ) ; Премахва елемента указван от i

връща итератор към елемента

след премахнатия

iterator erase ( iterator start , iterator end ) ; Премахва елементите в

интервала start – end ,връща итератор към елемента след последния премахнат елемент



reference front ( ) ; Връща псевдоним към първия

const_reference front ( ) const ; елемент във вектора

allocator_type get_allocator ( ) const ; Връща алокатор за вектора

iterator insert ( iterator i , Вмъква val непосредствено

const T &val = T ( ) ) ; преди елемента определен от i

Връща се итератор към елемента void insert ( iterator i , size_type num , Вмъква num копия от val

const T &val ) ; непосредствено преди елемента

определен от i



template < class InIter > Вмъква поредицата определена

void insert ( iterator i , от start – end непосредствено

InIter start , InIter end ) ; преди елемента определен

от i



size_type max_size ( ) const ; Връща максималния брой

елементи които може да

съдържа вектора

reference operator [ ] ( size_type i ) const ; Връща псевдоним за i - тия

const_reference елемент

operator [ ] ( size_type i ) const ;

void pop_back ( ) ; Премахва последния елемент

във вектора



void push_back ( const T &val ) ; Добавя елемент със стойност

val към края на вектора



reverse_iterator rbegin ( ) ; Връща обратен итератор към

const_reverse_iterator rbegin ( ) const ; края на вектора

reverse_iterator rend ( ) ; Връща обратен итератор към

const_reverse_iterator rend ( ) const ; началото на вектора

void reserve ( size_type num ) ; Установява капацитета на вектора така че да е равен

най – малко на num



void resize ( size_type num , T val = T ( ) ) ; Променя размера на вектора

kъм този определен от num . Aко вектора трябва да бъде удължен , тогава елементите със стойността определена от val се добавят към края

size_type size ( ) const ; Връща текущия брой елементи

във вектора



void swap ( vector < T , Allocator > &ob ) ; Разменя елементите съхранявани

във извиквания вектор със тези

в ob

STL също съдържа специализиран вектор за Булеви стойности . Той включва цялата функционалност на vector и добавя тези два члена :

void flip ( ) ; Инвертира всички битове във

вектора

static void swap ( reference i , reference j ) ;Разменя битовете определени



от i и j

Алгоритми


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

Общо име Представя

BiIter Двупосочен итератор

ForIter Прав итератор

InIter Входен итератор

OutIter Изходен итератор

RandIter Итератор с произволен

достъп


T Някакъв тип данни

Size Някакъв тип integer

Func Някакъв тип функция

Generator Функция която генерира

обекти


BinPred Бинарен предикат

UnPred Унарен предикат

Comp Сравнителна функция която връща резултата от

arg1 < arg2



adjacent_find


ForIter adjacent_find ( ForIter start , ForIter end ) ;

ForIter adjacent_find ( ForIter start , ForIter end ,

BinPred pfn ) ;

Алгоритъма adjacent_find ( ) търси съседни съответстващи елементи в поредица определена от start и end и връща итератор за първия елемент . Ако не е открита съседна двойка се връща end . Първата версия търси за еквивалентни елементи . Втората версия позволява да определите метод за определяне на съвпадащите елементи .


binary_search


bool binary_search ( ForIter start , ForIter end ,

const T &val ) ;

bool binary_search ( ForIter start , ForIter end ,

const T &val , Comp cmpfn ) ;

Алгоритъма binary_search ( ) извършва двоично търсене в подредената редица започваща от start и завършваща със end за стойността определена от val . Тя връща true ако открие val и false в противен случай . Първата версия сравнява елементите в определената редица за еднаквост . Втората версия позволява да определите ваша сравнителна функция .


copy


OutIter copy ( InIter start , InIter end , OutIter result ) ;

Алгоритъма copy ( ) копира последователноста започваща от start и завършваща със end слагайки резултата в редицата указвана от result . Тя връща указател за края на резултатната последователност . Интервала който ще бъде копиран не трябва да превишава result .


copy_backward


BiIter2 copy_backward ( BiIter start , BiIter end ,

BiIter2 result ) ;

Алгоритъма copy_backward ( ) е същия като copy ( ) с изключение на това че премества елементите от края в началото на поредицата .


count


size_t count ( InIter start , InIter end , const T &val ) ;

Алгоритъма count ( ) връща броя елементи в поредицата започваща от start и завършваща със end които съвпадат със val .


count_if


size_t count_if ( InIter start , InIter end , UnPred pfn ) ;

Алгоритъма count_if ( ) връща броя елементи в поредицата започваща от start и завършваща със end за които унарния предикат pfn връща true .


equal


bool equal ( InIter1 start1 , InIter1 end1 , InIter2 start2 ) ;

Алгоритъма equal ( ) определя дали два интервала са еднакви . Интервала определен от start1 и end1 се сравнява със поредицата указвана от start2 . Ако са еднакви се връща true , в противен случай се връща false .


equal_range


pair < ForIter , ForIter > equal_range ( ForIter start ,

ForIter end , const T &val ) ;

pair < ForIter , ForIter > equal_range ( ForIter start ,

ForIter end , const T &val , Comp cmpfn ) ;

Алгоритъма equal_range ( ) връща интервал в който може да бъде вмъкнат елемент в последователността без да се наруши подреждането на редицата . Региона в който се търси за такъв интервал е определен от start и end . Стойността се подава във val . За да определите ваш търсещ критерии , определете сравнителната функция cmpfn . Шаблонния клас pair e помощен който може да съдържа двойка обекти със техни first и second членове .


fill и fill_n


void fill ( ForIter start , ForIter end , const T &val ) ;

void fill_n ( ForIter start , Size num , const T &val ) ;

Алогоритмите fill ( ) и fill_n ( ) попълват интервал със стойността определена от val . За fill ( ) интервала е определен от start и end . За fill_n ( ) интервала започва от start и продължава num елемента .


find


InIter find ( InIter start , InIter end , const T &val ) ;

Алгоритъма find ( ) претърсва интервала от start до end за стойността определена от val . Той връща итератор към първото съвпадение на елемент или end ако стойността не е в редицата .


find_end


FwdIter1 find_end ( ForIter1 start1 , ForIter1 end1 ,

ForIter2 start2 , ForIter2 end2 ) ;

FwdIter1 find_end ( ForIter1 start1 , ForIter1 end1 ,

ForIter2 start2 , ForIter2 end2

BinPred pfn ) ;

Алгоритъма find_end ( ) търси последния итератор от подниза определен от start2 и end2 в интервала start1 - end1 . Ако редицата е открита се връща итератор към последния елемент в редицата . В противен случай се връща итератора end1 . Втората форма ви позволява да определите бинарен предикат който определя кога елементите съвпадат .


find_first_of


FwdIter1 find_first_of ( ForIter1 start1 , ForIter1 end1 ,

ForIter2 start2 , ForIter2 end2 ) ;

FwdIter1 find_first_of ( ForIter1 start1 , ForIter1 end1 ,

ForIter2 start2 , ForIter2 end2

BinPred pfn ) ;

Алгоритъма find_first_of ( ) открива първия елемент в поредицата определена от start1 и end1 който съвпада със елемент от интервала start2 и end2 . Ако няма съвпадащ елемнт се връща итератора end1 . Втората форма ви позволява да определите бинарен предикат който определя кога елементите съвпадат .


find_if


InIter find_if ( InIter start , InIter end , UnPred pfn ) ;

Алгоритъма find_if ( ) претърсва интервала start – end за елемент за който унарния предикат pfn връща true . Той връща итератор към първото срещане или end ако стойността не е в поредицата .


for_each


Func for_each ( InIter start , InIter end , Func fn ) ;

Алгоритъма for_each ( ) добавя функцията fn към интервала от елементи определен от start – end . Тя връща fn .


generate и generate_n


void generate ( ForIter start , ForIter end , Generator fngen ) ;

void generate_n ( OutIter start , Size num , Generator fngen ) ;

Алогоритмите generate ( ) и generate_n ( ) присвояват елементи в интервала от стойности върнати от генераторната функция . За generate ( ) интервала който е бил присвоен е определен от start и end . За generate_n ( ) интервала започва от start и продължава num елемента . Генераторната функция се подава във fngen . Тя няма параметри .


includes


bool includes ( InIter1 start1 , InIter1 end1 , InIter2 start2 ,

InIter2 end2 ) ;

bool includes ( InIter1 start1 , InIter1 end1 , InIter2 start2 ,

InIter2 end2 , Comp cmpfn ) ;

Алгоритъма includes ( ) определя дали поредицата start1 – end1 включва всички елементи от поредицата start2 – end2 . Тя връща true ако са открити всички елементи и false в противен случай . Втората форма ви позволява да определите сравнителна функция която определя кога един елемент е по – малък от друг .


inplace_merge


void inplace_merge ( BiIter start , BiIter mid , BiIter end ) ;

void inplace_merge ( BiIter start , BiIter mid , BiIter end ,

Comp cmpfn ) ;

Алгоритъма inplace_merge ( ) слива в единствена редица интервала определен от start и mid със интервала определен от mid и end . И двата интервала трябва да бъдат сортирани във нарастващ ред . След изпълнението , резултатната поредица е сортирана във нарастващ ред . Втората форма ви позволява да определите сравнителна функция която определя кога един елемент е по – малък от друг .


iter_swap


void iter_swap ( ForIter1 i , ForIter2 j ) ;

Алгоритъма iter_swap ( ) разменя стойностите указвани чрез неговите два итератора аргументи .


lexicographical_compare


bool lexicographical_compare ( InIter1 start1 , InIter1 end1 ,

InIter2 start2 , InIter2 end2 ) ;

bool lexicographical_compare ( InIter1 start1 , InIter1 end1 ,

InIter2 start2 , InIter2 end2

Comp cmpfn ) ;

Алгоритъма lexicographical_compare ( ) сравнява по азбучен ред редицата определена от start1 и end1 със редицата определена от start2 и end2 . Тя връща true ako първата редица е лексикографски по – малка от втората ( Така е ако първата редица ще бъде преди втората във речников ред ) . Втората форма ви позволява да определите сравнителна функция която определя кога един елемент е по – малък от друг .

lower_bound


ForIter lower_bound ( ForIter start , ForIter end ,

const T &val ) ;

ForIter lower_bound ( ForIter start , ForIter end ,

const T &val Comp cmpfn ) ;

Алгоритъма lower_bound ( ) открива първата точка в редицата определена от start и end която не е по – малка от val . Тя връща итератор за тази точка . Втората форма ви позволява да определите сравнителна функция която определя кога един елемент е по – малък от друг .


make_heap


void make_heap ( RandIter start , RandIter end ) ;

void make_heap ( RandIter start , RandIter end ,

Comp cmpfn ) ;

Алгоритъма make_heap ( ) изгражда хийп от редицата определена от start и end . Втората форма ви позволява да определите сравнителна функция която определя кога един елемент е по – малък от друг .


max


const T &max ( const T &i , const T &j ) ;

const T &max ( const T &i , const T &j , Comp cmpfn ) ;

Алгоритъма max ( ) връща максималната от две стойности . Втората форма ви позволява да определите сравнителна функция която определя кога един елемент е по – малък от друг .


max_element


ForIter max_element ( ForIter start , ForIter last ) ;

ForIter max_element ( ForIter start , ForIter last ,

Comp cmpfn ) ;

Алгоритъма max_element ( ) връща итератор към максималния елемент в интервала start и last . Втората форма ви позволява да определите сравнителна функция която определя кога един елемент е по – малък от друг .


merge


OutIter merge ( InIter1 start1 , InIter1 end1 , InIter2 start2 ,

InIter2 end2 , OutIter result ) ;

OutIter merge ( InIter1 start1 , InIter1 end1 , InIter2 start2 ,

InIter2 end2 , OutIter result , Comp cmpfn ) ;

Алгоритъма merge ( ) слива две подредени редици , поставяйки резултата в трета поредица . Редиците които се сливат се дефинират от start1 , end1 и start2 , end2 . Резултата се слага в редица указвана от result . Връща се итератор за края на резултатната редица . Втората форма ви позволява да определите сравнителна функция която определя кога един елемент е по – малък от друг .


min


const T &min ( const T &i , const T &j ) ;

const T &min ( const T &i , const T &j , Comp cmpfn ) ;

Алгоритъма min ( ) връща минималната от две стойности . Втората форма ви позволява да определите сравнителна функция която определя кога един елемент е по – малък от друг .


min_element


ForIter min_element ( ForIter start , ForIter last ) ;

ForIter min_element ( ForIter start , ForIter last ,

Comp cmpfn ) ;

Алгоритъма min_element ( ) връща итератор към минималния елемент в интервала start и last . Втората форма ви позволява да определите сравнителна функция която определя кога един елемент е по – малък от друг .


mismatch


pair < InIter1 , InIter2 > mismatch ( InIter1 start1 ,

InIter1 end1 ,InIter2 start2 ) ;

pair < InIter1 , InIter2 > mismatch ( InIter1 start1 ,

InIter1 end1 ,InIter2 start2 , BinPred pfn ) ;

Алгоритъма mismatch ( ) открива първото несъвпадение между елементите в две редици . Връща се итератор за двата елемента . Ако не е открито несъвпадение , се връщат итератори за двата последни елемента във всяка поредица . Втората форма ви позволява да определите бинарен предикат който определя кога един елемент е равен на друг . Шаблонния клас pair съдържа два члена данни наречени first и second които съдържат двойка стойности .


next_permutation


bool next_permutation ( BiIter start , BiIter end ) ;

bool next_permutation ( BiIter start , BiIter end ,

Comp cmpfn ) ;

Алгоритъма next_permutation ( ) изгражда следваща пермутация на редица . Пермутациите се генерират присвоявайки сортирана редица от ниско към високо представяне на първата пермутация . Ако не съществува следваща пермутация next_permutation ( ) сортира поредицата на нейната първа пермутация и връща false . В противен случай се връща true . Втората форма ви позволява да определите сравнителна функция която определя кога един елемент е по – малък от друг .


nth_element


void nth_element ( RandIter start , RandIter element ,

RandIter end ) ;

void nth_element ( RandIter start , RandIter element ,

RandIter end , Comp cmpfn ) ;

Алгоритъма nth_element ( ) подрежда редицата определена от start и end така че всички елементи по – малки от element идват преди елемента и всички елементи по – големи от element идват след него . Втората форма ви позволява да определите сравнителна функция която определя кога един елемент е по – малък от друг .



Каталог: 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
отнасят до администрацията

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