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 ) ; Премахва елементите в
интервала 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 ; Връща максималния брой
елементи които може да
съдържа списъка
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 ) ; Премахва елементите в
интервала start – end
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 идват след него . Втората форма ви позволява да определите сравнителна функция която определя кога един елемент е по – малък от друг .
Сподели с приятели: |