Programmer’s Reference


ГЛАВА 15 – С++ Низове и изключения



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

ГЛАВА 15 – С++ Низове и изключения


В добавка към 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


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

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