В добавка към iostream библиотеката и STL , стандартната С++ библиотека дефинира няколко други класа които манипулират разнообразие от ситуации . Например , има класове които поддържат числови операции , комплексна аритметика локализация . Докато много от тези класове не са често използвани във всекидневното програмиране , два са : низове и изключения . Те са описани тук .
Низове
С++ поддържа символните низове по два начина . Първия е нулево – прекъснат символен масив . Той пончкога се представя като С – низ . Втория начин е като класов обект от тип basic_string . Има две разновидности на basic_string : string който поддържа символни низове и wstring който поддържа широко - символни низове . Най – често ще използвате низови обекти от тип string и те са разгледани тук . Класа използван от basic_string е char_traits който дефинира няколко атрибута на символите които съставят низа . Важно е да разберете че докато най – общите низове са изградени от или char или wchar_t символи , basic_string може да работи със всеки обект който може да бъде използван да представя текстов символ . Класа basic_string е в основата си контейнер . Това значи че той поддържа алгоритмите описани във секцията за STL . Обаче низовете имат допълнителни възможности . За да използвате string обекти ще трябва да включите < string > . Шаблонната спецификация за basic_string e :
template < class charT , class Traits = char_traits < charT > ,
class Allocator = allocator < T > >
class basic_string
Тук , charT е тип на символите които се използват , Traits е класа който описва символите и Allocator определя алокатора . Той има следните конструктори :
explicit basic_string ( const Allocator &a = Allocator ( ) ) ;
basic_string ( size_type len , charT ch ,
const Allocator &a = Allocator ( ) ) ;
basic_string ( const charT *str ,
const Allocator &a = Allocator ( ) ) ;
basic_string ( const charT *str , size_type len ,
const Allocator &a = Allocator ( ) ) ;
basic_string ( const basic_string &str , size_type indx = 0 ,
size_type len , const Allocator &a = Allocator ( ) ) ;
template < class InIter >
basic_string ( InIter start , InIter end ,
const Allocator &a = Allocator ( ) ) ;
Първата форма конструира празен низ . Втората форма конструира низ който има len символа със стойност ch . Tретата форма изгражда низ koйто съдържа
eднакви елементи като str . Четвъртата форма изгражда низ който съдържа подниз str започващ от 0 и дълъг len символа . Петата форма изгражда низ от друг basic_string използвайки подниз който започва от indx и е дълъг len символа . Шестата форма изгражда низ който съдържа елементите в интервала определен от start и end . Следващите сравнителни оператори са дефинирани за basic_string : = = , < , < = , ! = , > и > = . Също е дефиниран и оператора + който дава резултата от свързването на един низ със друг и I/O операторите << и >> които могат да бъдат използвани за въвеждане и извеждане на низове . Оператора + може да бъде използван за свързване на низов обект със друг низов обект или низов обект със низ във С – стил . Така се поддържат следните случай:
string + string
string + C – string
C – string + string
Оператора + може да бъде използван да свързва символ към края на низ . Класа basic_string дефинира константа npos която обикновенно е -1 . Тази константа представя дължината на най – дългия възможен низ . В описанията общия тип charT представя типа на символите съхранявани от низа . Понеже имената на плейсхолдърите са случайни , контейнерните класове декларират typedef версии на тези типове . Това прави имената на типовете точни . Общо използваните типове дефинирани от basic_string са изброени тук :
size_type Някакъв целочислен тип
eквивалентен на size_t
reference Псевдоним на символ
const_reference const псевдоним на
символ
iterator Итератор
const_iterator const итератор
reverse_iterator Обратен итератор const_reverse_iterator const обратен итератор value_type Тип на символите
съхранявани в низа
allocator_type Типа на алокатора
pointer Указател към символ
в низа
const_pointer const указател към символ
в низа
basic_string съдържа следните член функции :
Член Описание
basic_string
&append ( const basic_string &str ) ; Добавя str в края на извиквания
низ ; връща *this
basic_string
&append ( const basic_string &str , Добавя подниза str в края на
size_type indx , size_type len ) ; извиквания низ . Подниза който
се присвоява започва от indx и
продължава len символа ;
връща *this
basic_string &append ( const charT *str ) ; Добавя str в края на
извиквания низ ; връща *this
basic_string &append ( const charT *str Добавя първите num символа в
size_type num ) ; края на извиквания низ ; връща *this
basic_string &append ( size_type len Добавя len символа определени
char T ch ) ; от ch в края на извиквания низ връща *this
template < class InIter > Добавя редицата определена от
basic_string &append ( InIter start , start и end в края на
InIter end ) ; извиквания низ ; връща *this
basic_string
&assign ( const basic_string &str ) ; Присвоява str на извиквания
низ връща *this
basic_string
&assign ( const basic_string &str , Присвоява подниза str на
size_type indx , size_type len ) ; извиквания низ . Подниза който
се присвоява започва от indx и
продължава len символа ;
връща *this
basic_string &assign ( const charT *str ) ; Присвоява str на извиквания
низ ; връща *this
basic_string &assign ( const charT *str , Присвоява първите len символа
size_type len ) ; от str на извиквания низ ; връща *this
basic_string &assign ( size_type len Присвоява len символа
char T ch ) ; определени от ch към края на
извиквания низ ; връща *this
template < class InIter > Присвоява поредицата
basic_string &assign ( InIter start , определена от start и end към
InIter end ) ; края на извиквания низ ;
reference at ( size_type indx ) ; Връща псевдоним за символа
const_reference at ( size_type indx ) const ; определен от indx
iterator begin ( ) ; Връща итератор за първия
const_iterator begin ( ) const ; елемент в низа
const charT *c_str ( ) const ; Връща указател към С – стил
( тоест нулево – терминиран )
вид на извиквания низ
size_type capacity ( ) const ; Връща текущия капацитет на
низа . Това е броя символи
които може да съдържа преди
да трябва да заделя още памет
int compare ( const basic_string &str ) Сравнява str със извиквания низ
const ; Връща едно от следните :
по – малко от 0 ако *this < str
0 ako *this = = str
по – голямо от 0 ако *this > str
int compare ( size_type indx , size_type len , Сравнява str със подниз в
const basic_string &str ) const ; извиквания низ . Подниза
започва от indx и е len символа
дълъг . Връща едно от следните :
по – малко от 0 ако *this < str
0 ako *this = = str
по – голямо от 0 ако *this > str
int compare ( size_type indx , size_type len , Сравнява подниз от str със
const basic_string &str , подниз във извиквания низ .
size_type indx2 , size_type len2 ) const ; Подниза във извиквания низ започва от indx и е len символа
дълъг . Подниза във str започва от indx2 и е len2 символа
дълъг . Връща едно от следните :
по – малко от 0 ако *this < str
0 ako *this = = str
по – голямо от 0 ако *this > str
int compare ( const char T *str ) const ; Сравнява str със извиквания низ
Връща едно от следните :
по – малко от 0 ако *this < str
0 ako *this = = str
по – голямо от 0 ако *this > str
int compare ( size_type indx , size_type len , Сравнява подниз от str със
const char T *str , подниз във извиквания низ .
size_type len2 = npos ) const ; Подниза във извиквания низ започва от indx и е len символа
дълъг . Подниза във str започва от 0 и е len2 символа дълъг . Връща едно от следните :
по – малко от 0 ако *this < str
0 ako *this = = str
по – голямо от 0 ако *this > str
size_type copy ( char T *str , size_type len , Започвайки от indx , koпира len
size_type indx = 0 ) const ; символа от извиквания низ в
символен масив указван от str ;
Връща броя на копираните
символи
const charT *data ( ) const ; Връща указател към първия
символ във извиквания низ
bool empty ( ) const ; Връща true ако извикания низ
е празен и false в противен случай
iterator end ( ) ; Връща итератор към края
const_iterator end ( ) const ; на низа
iterator erase ( iterator i ) ; Премахва символа указван от i
връща итератор за символа
след първия премахнат
iterator erase ( iterator start , iterator end ) ; Премахва символите в
интервала start – end ,връща итератор за символа след последния премахнат символ
basic_string &erase ( size_type indx = 0 , Започвайки от indx премахва len
size_type len = npos ) ; символа от извиквания низ ;
връща *this
size_type find ( const basic_string &str , Връща индекса за първото
size_type indx = 0 ) const ; срещане на str в извиквания низ
Търсенето започва от индекс indx . npos се връща ако няма
открито съвпадение
size_type find ( const charT *str , Връща индекса за първото
size_type indx = 0 ) const ; срещане на str в извиквания низ
Търсенето започва от индекс indx . npos се връща ако няма
открито съвпадение
size_type find ( const charT *str , Връща индекса за първото
size_type indx , size_type len ) срещане на първите len символа const ; от str във извиквания низ .
Търсенето започва от индекс
indx . npos се връща ако няма
открито съвпадение
size_type find ( charT ch , Връща индекса за първото
size_type indx = 0 ) const ; срещане на ch в извиквания низ
Търсенето започва от индекс indx . npos се връща ако няма
открито съвпадение
size_type Връща индекса за първия
find_first_of ( const basic_string &str , символ във извиквания низ
size_type indx = 0 ) const ; който съвпада със някой
символ във str . Търсенето започва от индекс indx . npos се връща ако няма открито съвпадение
size_type find_first_of ( const charT *str , Връща индекса за първия
size_type indx = 0 ) const ; символ във извиквания низ
който съвпада със някой
символ във str . Търсенето започва от индекс indx . npos се връща ако няма открито съвпадение
size_type find_first_of ( const charT *str , Връща индекса за първия
size_type indx , size_type len ) символ във извиквания низ
const ; който съвпада със някой
символ от първите len символа във str . Търсенето започва от индекс indx . npos се връща ако няма открито съвпадение
size_type find_first_of ( charT ch , Връща индекса за първото
size_type indx = 0 ) const ; срещане на ch във извиквания низ .Търсенето започва от индекс indx . npos се връща ако няма открито съвпадение
size_type Връща индекса за първия
find_first_not_of ( const basic_string &str , символ във извиквания низ
size_type indx = 0 ) const ; който не съвпада със никой
символ във str . Търсенето започва от индекс indx . npos се връща ако няма открито несъвпадение
size_type Връща индекса за първия
find_first_not_of ( const charT *str , символ във извиквания низ
size_type indx = 0 ) const ; който не съвпада със никой
символ във str . Търсенето започва от индекс indx . npos се връща ако няма открито несъвпадение
size_type Връща индекса за първия
find_first_not_of ( const charT *str , символ във извиквания низ
size_type indx , size_type len ) на който не съвпада никой
const ; символ във първите len символа от str . Търсенето започва от индекс indx . npos се връща ако няма открито несъвпадение
size_type find_first_not_of ( charT ch , Връща индекса за първия
size_type indx = 0 ) const ; символ във извиквания низ на който не съвпада ch . Търсенето започва от индекс indx . npos се връща ако няма открито несъвпадение
size_type Връща индекса на последния
find_last_of ( const basic_string &str , символ във извиквания низ
size_type indx = npos ) const ; който съвпада със някой
символ във str . Търсенето започва от индекс indx . npos се връща ако няма открито съвпадение
size_type find_last_of ( const charT *str , Връща индекса на последния
size_type indx = npos ) const ; символ във извиквания низ
който съвпада със някой
символ във str . Търсенето започва от индекс indx . npos се връща ако няма открито съвпадение
size_type find_last_of ( const charT *str , Връща индекса на последния
size_type indx , size_type len ) символ във извиквания низ
const ; който съвпада със някой
символ от първите len символа във str . Търсенето започва от индекс indx . npos се връща ако няма открито съвпадение
size_type find_last_of ( charT ch , Връща индекса на последното
size_type indx = npos ) const ; срещане на ch във извиквания низ .Търсенето започва от индекс indx . npos се връща ако няма открито съвпадение
size_type Връща индекса на последния
find_last_not_of ( const basic_string &str , символ във извиквания низ
size_type indx = npos ) const ; който не съвпада със никой
символ във str . Търсенето започва от индекс indx . npos се връща ако няма открито несъвпадение
size_type Връща индекса на последния
find_last_not_of ( const charT *str , символ във извиквания низ
size_type indx = npos ) const ; който не съвпада със никой
символ във str . Търсенето започва от индекс indx . npos се връща ако няма открито несъвпадение
size_type Връща индекса на последния
find_last_not_of ( const charT *str , символ във извиквания низ
size_type indx , size_type len ) на който не съвпада никой
const ; символ във първите len символа от str . Търсенето започва от индекс indx . npos се връща ако няма открито несъвпадение
size_type find_last_not_of ( charT ch , Връща индекса на последния
size_type indx = npos ) const ; символ във извиквания низ на който не съвпада ch . Търсенето започва от индекс indx . npos се връща ако няма открито несъвпадение
allocator_type get_allocator ( ) const ; Връща алокатор за низ
iterator insert ( iterator i , Вмъква ch непосредствено
const charT &ch = charT ( ) ) ; преди символа определен от i
Връща се итератор към символа
basic_string &insert ( size_type indx , Вмъква str във извиквания низ
const basic_string &str ) ; на индекса определен от indx .
Връща *this
basic_string &insert ( size_type indx1 , Вмъква подниз от str във
const basic_string &str , във извиквания низ на индекс
size_type indx2 , size_type len ) ; определен от indx1 . Подниза започва от indx2 и е len символа дълъг . Връща *this
basic_string &insert ( size_type indx , Вмъква str във извиквания низ
const charT *str ) ; на индекса определен от indx .
Връща *this
basic_string &insert ( size_type indx , Вмъква първите len символа
const charT *str , size_type len ) ; от str в извиквания низ на индекса определен от indx .
Връща *this
basic_string &insert ( size_type indx , Вмъква len символа със
size_type len , charT ch ) ; стойност ch в извиквания низ на индекса определен от indx .
Връща *this
void insert ( iterator i , size_type len , Вмъква len копия от ch
const charT &ch ) ; непосредствено преди елемента
определен от i
template < class InIter > Вмъква поредицата определена
void insert ( iterator i , InIter start , от start – end непосредствено
InIter end ) ; преди елемента определен
от i
size_type length ( ) const ; Връща броя на символите в низа
size_type max_size ( ) const ; Връща максималния брой
символи които може да
съдържа низа
reference operator [ ] ( size_type indx ) Връща псевдоним за символа
const ; определен от indx
const_reference operator [ ] (size_type indx )
const ;
basic_string Присвоява определения низ или
&operator = ( const basic_string &str ) ; символ на извиквания низ ;
basic_string връща *this
&operator = ( const charT *str ) ;
basic_string &operator = ( charT ch ) ;
basic_string Добавя определения низ или
&operator += ( const basic_string &str ) ; символ към края на
&operator += ( const charT *str ) ; извиквания basic_string basic_string &operator += ( charT ch ) ;низ ; връща *this
reverse_iterator rbegin ( ) ; Връща обратен итератор към
const_reverse_iterator rbegin ( ) const ; края на низа
reverse_iterator rend ( ) ; Връща обратен итератор към
const_reverse_iterator rend ( ) const ; началото на низа
basic_string &replace ( size_type indx , Замества len символа във
size_type len , извиквания низ започвайки от
const basic_string &str ) ; indx със низа в str ; връща *this
basic_string &replace ( size_type indx1 , Замества len1 символа във
size_type len1 , const basic_string &str , извиквания низ започвайки от
size_type indx2 , size_type len2 ) ; indx1 със len2 символа от низа
в str започващи от indx2 ; връща *this
basic_string &replace ( size_type indx , Замества len символа във
size_type len , const charT *str ) ; извиквания низ започвайки от
indx със низа в str ; връща *this
basic_string &replace ( size_type indx1 , Замества len1 символа във
size_type len1 , const charT *str , извиквания низ започвайки от
size_type len2 ) ; indx1 със len2 символа от низа
в str започващи от indx2 ; връща *this
basic_string &replace ( size_type indx , Замества len1 символа във
size_type len1 , size_type len2 , извиквания низ започвайки от
charT ch ) ; indx1 със len2 символа определени от ch ; връща *this
basic_string &replace ( iterator start , Замества интервала определен
iterator end , const basic_string &str ) ; от start и end със str ; връща
*this
basic_string &replace ( iterator start , Замества интервала определен
iterator end , const charT *str ) ; от start и end със str ; връща
*this
basic_string &replace ( iterator start , Замества интервала определен
iterator end , const charT *str , от start и end със първите len
size_type len ) ; символа от str ; връща *this
basic_string &replace ( iterator start , Замества интервала определен
iterator end , size_type len , charT ch ) ; от start и end със len символа
от str ; връща *this
template < class InIter > Замества интервала start1 – end1
basic_string &replace ( iterator start1 , със символите определени чрез
iterator end1 , InIter start2 , start2 – end2 ; връща *this
InIter end2 ) ;
void reserve ( size_type num = 0 ) ; Установява капацитета на низа
така че да е равен най – малко
на num
void resize ( size_type num ) ; Променя размера на низа kъм
void resize ( size_type num , charT ch ) ; този определен от num . Aко
низа трябва да бъде удължен,
тогава елементите със стойността
определена от ch се добавят
към края
size_type rfind ( const basic_string &str , Връща индекса на последното
size_type indx = npos ) const ; срещане на str във извиквания низ . Търсенето започва от индекс indx . npos се връща ако няма открито съвпадение
size_type rfind ( const charT *str , Връща индекса на последното
size_type indx = npos ) const ; срещане на str във извиквания
низ . Търсенето започва от индекс indx . npos се връща ако няма открито съвпадение
size_type rfind ( const charT *str , Връща индекса на последното
size_type indx , size_type len ) const ; срещане на първите len символа
от str във извиквания низ . Търсенето започва от индекс indx . npos се връща ако няма открито съвпадение
size_type rfind ( charT ch , Връща индекса на последното
size_type indx = npos ) const ; срещане на ch във извиквания
низ . Търсенето започва от индекс indx . npos се връща ако няма открито съвпадение
size_type size ( ) const ; Връща текущия брой символи
в низа
basic_string substr ( size_type indx = 0 , Връща подниз от len символа
size_type len = npos ) const ; започвайки от indx във
извиквания низ
void swap ( basic_string &str ) ; Разменя символите съхранявани
в извиквания низ със тези
в str
Сподели с приятели: |