Программирование >>  Операторы преобразования типа 

1 ... 160 161 162 [ 163 ] 164 165 166 ... 239


О Если аргумент len отсутствует, используются все оставшиеся символы строки.

О Если аргументы idx и len отсутствуют, возврашается копия строки.

О Если выполняется условие idx>s\zeQ, все три формы генерируют исключение out of range.

string operator+ (const string stri. const string str2) string operator+ (const string stri. const char* cstr) string operator+ (const char* cstr. const string, str) string operator+ (const string str. char c) string operator+ (char c. const string str)

О Все формы выполняют конкатенацию двух операндов и возвращают полученную строку.

о Операнды состоят из произвольной комбинации строк, С-строк или одиночных символов.

О Если размер полученной строки превышает максимально допустимое количество символов, все формы генерируют исключение length error.

Функции ввода-вывода

ostreamj operator (ostreamb. strm. const string str) О Записывает символы str в поток strm.

О Если выполняется условие strm.w\6thQ>0, в поток данных выводятся не менее widthO символов, а ширина поля в потоке данных обнуляется.

О Параметр ostream - выходной поток типа basic ostream<c/zflr>, где char - тип символов (см. с. 562).

istream operator (istream strm, string str)

О Читает символы следующего слова из потока данных strm в строку str. О Если для strm- установлен флаг skipws, начальные пропуски игнорируются. О Чтение производится до выполнения одного из следующих условий:

□ strm.w)6th{) больше О, и из потока данных прочитаны width() символов;

□ strm.goo(l{) возвращает false (что может привести к выдаче соответствующего исключения);

□ isspace(t;,5trm.getloc()) возвращает true для следующего символа с;

□ 5tr.max size() символов сохраняется.

О Параметр istream - входной поток данных типа basic lstream<c/iflr>, где char - тип символов (см. с. 562).

istreame getline (istream strm. string, str)

istream getline (istream strm. string str. char delim)

О Читает символы следующей логической строки из потока strm. в строку str.



О Читаются все символы (включая начальные пропуски) до выполнения одного из следующих условий:

□ strrn.goo60 возвращает false (что может привести к выдаче соответствующего исключения);

□ из потока данных читается delim или 5/7w.widen(\n);

□ 5tr.max size() символов сохраняется.

О Разделитель строк извлекается из потока данных, но не присоединяется к str.

О Внутренняя память перераспределяется по мере необходимости.

О Параметр istream - входной поток данных типа basicJstream<c/?Gr>, где char - тип символов (см. с. 562).

1олучение итераторов

Iterator string::beg1n ()

const 1 terator string: -.begiu () const

О Обе формы возвращают итератор произвольного доступа, установленный в начало строки (в позицию первого символа).

О Для пустой Строки вызов begin() эквивалентен вызову end().

iterator string:;end О const 1terator string:: end О const

О Обе формы возвращают итератор произвольного доступа, установленный в конец строки (в позицию за последним символом).

О Символ в позиции end() не определен, поэтому конструкции вида *s.end() приводят к непредсказуемым последствиям.

О Для пустой строки вызов end() эквивалентен вызову begin().

reverse iterator string::rbegin () const reverse iterator string::rbegin О const

О Обе формы возвращают итератор произвольного доступа, установленный в позицию начала перебора строки в обратном направлении (то есть в позицию последнего символа).

О Для пустой строки вызов rbeginO эквивалентен вызову rend().

О Обратные итераторы описаны на с. 270

reverse 1terator string::rend О const reverse 1terator string: :гег\6 О const

О Обе формы возвращают итератор произвольного доступа, установленный в позицию конца перебора строки в обратном направлении (в позицию перед первым символом).

О Символ в позиции rendO не определен, поэтому конструкции вида *s.rendO приводят к непредсказуемым последствиям.



О Для пустой строки вызов rend() эквивалентен вызову rbegin(). О Обратные итераторы описаны на с. 270

Поддержка распределителей памяти

Для строк также определены стандартные члены классов, обеспечивающие поддержку распределителей памяти.

string::allocator type

О Тип распределителя памяти.

О Третий параметр шаблона basic string<>.

О Для типа string - эквивалент allocator<char>.

allocator type str/:?: :get anocator О const

Возвращает модель распределения памяти, используемую строкой.

Распределитель памяти может также передаваться в необязательном аргументе всех конструкторов строк. Ниже перечислены строковые конструкторы с необязательными аргументами в соответствии со стандартом:

namespace std {

tempiate<class charT,

class traits = char traits<charT>. class Allocator = allocator<charT> > class basic string { public:

Конструкгор no умолчанию

explicit basic string(const Allocators a = Allocator()):

Копирующий конструктор basic str1ng(const basic string& str,

size type str idx = 0.

size type str num = npos): basic string(const basic string& str.

size type str idx. si2e type str num.

const Allocators):

Конструктор для С-строк basicstringCconst charT* cstr.

const Allocators a = AllocatorO):

Конструктор для синвопьных массивов basic stringCconst charT* chars. size type chars len, const Allocators a = AllocatorO):

Конструктор для num экземпляров символа basic string(size type num. charT c.

const Allocators a = AllocatorO):



1 ... 160 161 162 [ 163 ] 164 165 166 ... 239

© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика