String npos c что это
Строки в языке C++ (класс string)
В языке C++ для удобной работы со строками есть класс string, для использования которого необходимо подключить заголовочный файл string.
Строки можно объявлять и одновременно присваивать им значения:
string S1, S2 = «Hello»;
Строка S1 будет пустой, строка S2 будет состоять из 5 символов.
Строки в языке C++ могут
Конструкторы строк
Конструкторы можно вызывать явно, например, так:
Неявно конструктор вызывается при объявлении строки с указанием дополнительных параметров. Например, так:
Подробней о конструкторах для строк читайте здесь.
Ввод-вывод строк
Строка выводится точно так же, как и числовые значения:
cout >» для объекта cin:
Можно считывать строки до появления символа конца строки при помощи функции getline. Сам символ конца строки считывается из входного потока, но к строке не добавляется:
Арифметические операторы
Подробней о методе resize.
clear
Подробней о методе clear.
empty
Подробней о методе empty.
push_back
Подробней о методе push_back.
append
Добавляет в конец строки несколько символов, другую строку или фрагмент другой строки. Имеет много способов вызова.
Подробней о методе append.
erase
Подробней о методе erase.
insert
Подробней о методе insert.
substr
Подробней о методе substr.
replace
Заменяет фрагмент строки на несколько равных символов, другую строку или фрагмент другой строки. Способы вызова аналогичны способам вызова метода append, только первыми двумя параметрами являются два числа: pos и count. Из данной строки удаляется count символов, начиная с символа pos, и на их место вставляются новые символы.
Подробней о методе replace.
Подробней о методе find.
rfind
Ищет последнее вхождение подстроки («правый» поиск). Способы вызова аналогичны способам вызова метода find.
Подробней о методе rfind.
find_first_of
Ищет в данной строке первое появление любого из символов данной строки str. Возвращается номер этого символа или значение string::npos.
find_last_of
Ищет в данной строке последнее появление любого из символов данной строки str. Способы вызова и возвращаемое значение аналогичны методу find_first_of.
Подробней о методе find_last_of.
find_first_not_of
Ищет в данной строке первое появление символа, отличного от символов строки str. Способы вызова и возвращаемое значение аналогичны методу find_first_of.
find_last_not_of
Ищет в данной строке последнее появление символа, отличного от символов строки str. Способы вызова и возвращаемое значение аналогичны методу find_first_of.
c_str
Возвращает указать на область памяти, в которой хранятся символы строки, возвращает значение типа char*. Возвращаемое значение можно рассматривать как C-строку и использовать в функциях, которые должны получать на вход C-строку.
Как string :: npos узнает, на какую строку я ссылаюсь?
Я работаю над книгой на C ++, и это только покрыто с помощью string::npos проверить, существует ли позиция символа в строке. Я не понимаю, как этот механизм мог знать, к какой строке я обращаюсь! Этот конкретный код считает количество вхождений подстроки.
Я понимаю, что он запускает цикл при первом появлении слова, увеличивая счетчик при каждом проходе, чтобы избежать повторного подсчета одной и той же подстроки, а затем в конце каждого цикла счетчик переходит на позицию следующего появления подстрока. Цикл останавливается, когда счетчик не существует как символьный индекс для строки.
Решение
Например, это может быть реализовано как:
Другие решения
Обратите внимание, что std::string::size_type является unsigned значение и int подписан Если std::string::npos не может быть представлен как int затем преобразование из std::string::npos в int является неопределенным поведением.
Он не знает, на какую строку вы ссылаетесь, npos это просто статический член const, который представляет максимальное значение, представимое и в этом случае представляет и eror, если мы посмотрим, что cppreference говорит о станд :: basic_string :: НСС :
Это специальное значение, равное максимальному значению, представляемому типом size_type. Точное значение зависит от контекста, но обычно оно используется либо как индикатор конца строки функциями, которые ожидают строковый индекс, либо как индикатор ошибки функциями, которые возвращают индекс строки.
который соответствует определению для npos в проект стандарта C ++ в разделе 21.4 Шаблон класса basic_string параграф 5:
что немного странно, так как с size_type является неподписанный но из-за интегральных правил преобразования в разделе 4.7 Интегральные преобразования который говорит:
Если тип назначения является беззнаковым, полученное значение является наименьшим целым числом без знака, соответствующим исходному целому числу (по модулю 2n, где n — число битов, используемых для представления типа без знака). […]
В противном случае, если новый тип без знака, значение преобразуется путем многократного добавления или
вычитание больше, чем максимальное значение, которое может быть представлено в новом типе
пока значение не окажется в диапазоне нового типа.
String npos c что это
Класс basic_string по сути является контейнером. Это значит, что итераторы и алгоритмы STL могут обеспечить работу со строками. Однако строки обладают дополнительными возможностями.
Тип basic_string использует класс char_traits, который определяет ряд атрибутов символов, составляющих строку. Важно понимать, что, поскольку большинство строк состоит из символов либо типа char, либо типа wchar_t, класс basic_string в состоянии обработать любой объект, который может быть использован для представления текстового символа.
Спецификация шаблона для класса basic_string имеет следующий вид.
Первая форма конструктора создает пустую строку. Вторая форма создает строку, которая содержит len символов со значением ch. Третья создает строку, которая содержит такие же элементы, как и строка str. Четвертая формирует строку, которая содержит подстроку str, начинающуюся с нулевого(по счету) символа, и имеет длину, равную len символов. Пятая создает строку из другого класса basic_string, используя подстроку, которая начинается с символа indx и имеет длину, равную len символов. Наконец, шестая форма создает строку, которая содержит элементы в диапазоне, заданном параметрами start и end.
Для класса basic_string определены следующие операторы сравнения:
Также определены оператор +, выполняющий конкатенацию двух строк, и операторы ввода-вывода >, которые можно использовать для ввода и вывода строк.
Оператор + можно использовать для конкатенации одного строкового объекта с другим или строкового объекта со строкой, созданной в С-стиле. Другими словами, поддерживаются следующие операции.
Оператор + можно использовать для добавления символа в конец строки.
В приведенных ниже описаниях обобщенный тип CharType представляет тип символа, сохраняемого строкой. Поскольку имена типов в шаблонном классе являются произвольными, в контейнерных классах объявляются typedef-версии этих типов, что конкретизирует имена типов. Ниже перечислены часто используемые типы, определенные в классе basic_string.
size_type | Некоторый целый тип, эквивалентный типу size_t |
reference | Ссылка на символ const-ссылка на символ |
const_reference | Итератор const-итератор |
iterator | Итератор |
const_iterator | const-итератор |
reverse_iterator | Реверсивный итератор |
const_reverse_iterator | Реверсивный const-итератор |
value_type | Тип символа, сохраненного в строке |
allocator_type | Тип распределителя |
pointer | Указатель на символ внутри строки |
const_pointer | const-указатель на символ внутри строки |
traits_type | typedef-имя для char_traits |
difference_type | Тип, который может хранить разность двух адресов |
В следующей таблице приведены функции-члены, определенные в классе basic_string. Поскольку подавляющее большинство программистов используют char-строки(в том числе в целях упрощения описания), в таблице использован тип string, но следует помнить, что эти функции также применяются к объектам типа wstring(или любого другого типа, определенного в классе basic_string).
Совет программисту
Если с традиционными, созданными в С-стиле строками было всегда легко работать, то строковые классы C++ делают обработку строк совершенно простой. Например, с помощью объектов string можно использовать оператор присваивания(для назначения строковым объектам заключенных в кавычки строк), операторы отношений(для сравнения строк), а также множество функций обработки строк, которые значительно облегчают операции с подстроками. Рассмотрим, например, следующую программу.
Ниже приведен результат работы этой программы.
Обратите внимание на простоту выполнения обработки строк. Например, оператор + используется для конкатенации, а оператор
Класс basic_string
Синтаксис
Параметры
Конструкторы
Конструктор | Описание |
---|---|
basic_string | Создает пустую строку или строку, инициализируемую с определенными символами, или представляющую собой полную или частичную копию какого-либо другого строкового объекта или С-строки. |
Определения типов
Функции элементов
Операторы
Оператор | Описание |
---|---|
operator+= | Присоединяет символы к строке. |
operator= | Назначает значения новых символов содержимому строки. |
operator[] | Предоставляет ссылку на символ с указанным индексом в строке. |
Литералы
Объявление | Описание |
---|---|
inline string operator»» s(const char* str, size_t len) | Возвращаемый результат: string(str, len) |
inline string operator»» s(const wchar_t* str, size_t len) | Возвращаемый результат: wstring(str, len) |
inline basic_string operator»» s(const char8_t* str, size_t len) | Возвращаемый результат: basic_string (str, len) |
inline u16string operator»» s(const char16_t* str, size_t len) | Возвращаемый результат: u16string(str, len) |
inline u32string operator»» s(const char32_t* str, size_t len) | Возвращаемый результат: u32string(str, len) |
Комментарии
Ссылки, указатели и итераторы, указывающие элементы управляемой последовательности, могут стать недействительными после любого вызова функции, которая изменяет управляемую последовательность, или после первого вызова функции, не являющейся const членом.
Требования
Заголовок: Строка>
Пространство имен: std
basic_string::allocator_type
Тип, представляющий класс allocator для объекта строки.
Комментарии
Пример
basic_string::append
Добавляет символы в конец строки.
Параметры
ptr
C-строка для добавления.
str
Строка, символы которой добавляются.
offset
Индекс части исходной строки, предоставляющей добавляемые знаки.
count
Максимальное число символов для добавления из исходной строки.
char_value
Символьное значение для добавления.
first
Входной итератор ввода, указывающий на первый элемент в диапазоне для добавления.
last
Входной итератор, или, указывающий на const_pointer const_iterator расположение объекта после последнего элемента в добавляемом диапазоне.
Возвращаемое значение
Ссылка на добавляемый объект строки с символами, переданными функцией-членом.
Комментарии
Пример
basic_string::assign
Назначает значения новых символов содержимому строки.
Параметры
ptr
Указатель на символы C-строки, которые должны быть назначены целевой строке.
count
Число символов, назначаемых из исходной строки.
str
Исходная строка, символы которой присваиваются целевой строке.
char_value
Символьное значение для присваивания.
first
Входной итератор, const_pointer или const_iterator, указывающий первый символ в диапазоне исходной строки для присваивания целевому диапазону.
last
Входной итератор, const_pointer или const_iterator, указывающий символ сразу за последним символом в диапазоне исходной строки для присваивания целевому диапазону.
off
Позиция, начиная с которой должны назначаться новые символы.
Возвращаемое значение
Ссылка на объект строки, которому функция-член будет присваивать новые символы.
Комментарии
Строкам можно присваивать новые символьные значения. Новое значение может быть строкой, C-строкой или одним символом. operator= Может использоваться, если новое значение можно описать с помощью одного параметра; в противном случае можно использовать функцию-член с assign несколькими параметрами, чтобы указать, какая часть строки должна быть назначена целевой строке.
Пример
basic_string::at
Предоставляет ссылку на символ с указанным индексом в строке.
Параметры
offset
Индекс позиции элемента, на который должна быть ссылка.
Возвращаемое значение
Ссылка на символ строки в позиции, указанной с помощью индекса параметра.
Комментарии
Первый элемент строки имеет нулевой индекс, и следующие элементы индексируются последовательно положительными целыми числами, поэтому строка длиной n имеет n-й элемент, индексируемый по числу n – 1.
Элемент operator[] работает быстрее, чем функция-член, at предоставляющая доступ на чтение и запись к элементам строки.
Возвращаемая ссылка может быть недействительной при перераспределении строк или изменении для не const строк.
Пример
basic_string::back
Возвращает ссылку на последний элемент строки.
Возвращаемое значение
Ссылка на последний элемент строки, которая не должна быть пустой.
Комментарии
basic_string::basic_string
Создает пустую строку, строку, инициализируемую определенными символами или представляющую собой копию всей или части другого строкового объекта или С-строки (с окончанием на null).
Параметры
alloc_type
Класс распределителя хранилища для создаваемого строкового объекта.
count
Количество инициализируемых символов.
right
Строка, инициализирующая создаваемую строку.
right_offset
Индекс символа в строке, который первым используется для инициализации значений символов создаваемой строки.
char_value
Значение символа, копируемое в создаваемую строку.
first
Итератор ввода, const_pointer или const_iterator, указывающий на первый элемент в диапазоне источника, который необходимо вставить.
last
Итератор ввода, const_pointer или const_iterator, указывающий на положение сразу за последним элементом в диапазоне источника, который необходимо вставить.
Возвращаемое значение
Ссылка на строковый объект, создаваемый конструкторами.
Комментарии
Пример
basic_string::begin
Возвращает итератор, адресующий первый элемент в строке.
Возвращаемое значение
Итератор произвольного доступа, указывающий на первый элемент последовательности (или на место сразу за концом пустой последовательности).
Пример
basic_string::c_str
Преобразует содержимое строки в С-строку, завершающуюся символом NULL.
Возвращаемое значение
Указатель на версию вызываемой С-строки. Значение указателя не является допустимым после вызова const функции, не являющейся, включая деструктор, в basic_string классе объекта.
Комментарии
Возвращаемая строка в стиле C не должна изменяться, что может сделать недействительным указатель на строку или удалить, так как строка имеет ограниченное время существования и принадлежит строке класса.
Пример
basic_string::capacity
Возвращает наибольшее количество элементов, которые можно хранить в строке без увеличения выделения памяти этой строки.
Возвращаемое значение
Размер хранилища, выделенного в текущий момент в памяти для хранения строки.
Комментарии
Пример
basic_string::cbegin
Возвращаемое значение
Комментарии
С возвращаемым значением cbegin элементы в диапазоне нельзя изменять.
basic_string::cend
Возвращаемое значение
Итератор const с произвольным доступом, который указывает конец диапазона.
Комментарии
cend используется для проверки того, прошел ли итератор конец диапазона.
Значение, возвращаемое, cend не должно быть разыменовано.
basic_string::clear
Удаляет все элементы строки.
Комментарии
Строка, для которой вызывается функция-член, будет пустой.
Пример
basic_string::compare
Выполняет сравнение с учетом регистра с указанной строкой, чтобы определить, равны ли две строки, или если одна из них лексикографически меньше другой.
Параметры
str
Строка для сравнения со строкой операнда.
position_1
Индекс строки операнда, с которого начинается сравнение.
number_1
Максимальное количество символов из строки операнда для сравнения.
number_2
Максимальное количество символов из строки параметра для сравнения.
offset
Индекс строки параметра, с которого начинается сравнение.
count
Максимальное количество символов из строки параметра для сравнения.
ptr
С-строка для сравнения со строкой операнда.
Возвращаемое значение
Отрицательное значение, если строка операнда меньше, чем строка параметра; ноль, если две строки равны; или положительное значение, если строка операнда больше, чем строка параметра.
Комментарии
compare Функции элементов сравнивают либо все, либо часть строк параметров и операндов в зависимости от используемого объекта.
При сравнении учитывается регистр.
Пример
basic_string::const_iterator
Тип, предоставляющий итератор произвольного доступа, который может читать элемент const в списке.
Комментарии
Тип const_iterator нельзя использовать для изменения значения символа и используется для прохода по строке в прямом направлении.
Пример
basic_string::const_pointer
Тип, предоставляющий указатель на элемент const в списке.
Комментарии
Указатели, объявленные как const, должны инициализироваться при их объявлении. Указатели const всегда указывают на одно и то же расположение в памяти и могут указывать на постоянные или неконстантные данные.
Пример
basic_string::const_reference
Комментарии
Тип const_reference нельзя использовать для изменения значения элемента.
Пример
basic_string::const_reverse_iterator
Тип, предоставляющий итератор произвольного доступа, который может читать любой элемент const в строке.
Комментарии
Тип const_reverse_iterator не может изменить значение символа и используется для перебора строки в обратную.
Пример
basic_string::copy
Копирует не более указанного количества символов из индексированного положения в исходной строке в массив символов назначения.
Параметры
ptr
Целевой массив символов, в который должны быть скопированы элементы.
count Число символов, которые будут копироваться не более чем из исходной строки.
offset
Начальная позиция в исходной строке, из которой должны быть сделаны копии.
Возвращаемое значение
Число скопированных символов.
Комментарии
Символ NULL не добавляется в конец копии.
Пример
basic_string::crbegin
Возвращает константный итератор, адресующий первый элемент в обратной строке.
Возвращаемое значение
Обратный итератор, который указывает на положение, следующее за концом строки. Позиция задает начало обратной строки.
basic_string::crend
Возвращает const итератор, который обращается к месту, следующему за последним элементом в обращенной строке.
Возвращаемое значение
const Обратный итератор, который обращается к расположению, следующему за последним элементом в обращенной строке (расположении, предшествующем первому элементу в неизмененной строке).
Комментарии
basic_string::_Copy_s
Копирует не более указанного количества символов из индексированного положения в исходной строке в массив символов назначения.
Параметры
dest
Целевой массив символов, в который должны быть скопированы элементы.
count Число символов, которые будут копироваться не более чем из исходной строки.
offset
Начальная позиция в исходной строке, из которой должны быть сделаны копии.
Возвращаемое значение
Число фактически скопированных символов.
Комментарии
Символ NULL не добавляется в конец копии.
Пример
basic_string::data
Преобразует содержимое строки в массив символов, заканчивающийся нулем.
Возвращаемое значение
Комментарии
В const c++ 17 не является перегрузкой. Чтобы использовать его, укажите /std:c++17 параметр компилятора или более поздней версии.
Пример
basic_string::difference_type
Тип, предоставляющий разницу между двумя итераторами, ссылающимися на элементы в одной и той же строке.
Комментарии
Тип целого числа со знаком описывает объект, который может представлять разницу между адресами любых двух элементов в управляемой последовательности.
Пример
basic_string::empty
Проверяет, содержит ли строка символы.
Возвращаемое значение
Комментарии
Функция-член эквивалентна size = = 0.
Пример
basic_string::end
Возвращает итератор, адресующий расположение после последнего элемента в строке.
Возвращаемое значение
Возвращает итератор произвольного доступа, указывающий расположение за последним элементом в строке.
Комментарии
end часто используется для проверки того, достиг ли итератор конца строки. Значение, возвращаемое, end не должно быть разыменовано.
Пример
basic_string::ends_with
Проверьте, заканчивается ли строка указанным суффиксом.
Параметры
c
Искомый суффикс одиночных символов.
x
Строка символов, завершающаяся нулем, содержащая суффикс для поиска.
Возвращаемое значение
true значение, если строка заканчивается указанным суффиксом; false в противном случае — значение.
Комментарии
ends_with() Новое в C++ 20. Чтобы использовать его, укажите /std:c++20 параметр компилятора или более поздней версии.
starts_with Проверить, начинается ли строка с указанного префикса, см. в разделе.
Пример
basic_string::erase
Удаляет элемент или диапазон элементов с указанного положения в строке.
Параметры
first
Итератор, указывающий позицию первого элемента в диапазоне для очистки.
last
Итератор, указывающий позицию первого, следующую за последним элементом в диапазоне для очистки.
iter
Итератор, указывающий позицию элемента в строке для очистки.
offset
Индекс первого символа в строке для удаления.
Возвращаемое значение
Для первых двух функций-членов это итератор, указывающий первый символ после последнего символа, удаленного функцией-членом. Для третьей функции-члена это ссылка на объект string, из которого удалены элементы.
Комментарии
Пример
basic_string::find
Поиск по строке в прямом направлении до первого вхождения подстроки, совпадающей с заданной последовательностью символов.
Параметры
char_value
Значение символа, для которого следует искать функцию-член.
offset
Индекс позиции, в которой следует начать поиск.
ptr
Строка C-string, для которой следует искать функцию-член.
count
Число символов, начиная с первого, в строке C-string, для которой следует искать функцию-член.
str
Строка, для которой следует искать функцию-член.
Возвращаемое значение
Пример
basic_string::find_first_not_of
Выполняет поиск первого символа в строке, который не является элементом указанной строки.
Параметры
char_value
Значение символа, для которого следует искать функцию-член.
offset
Индекс позиции, в которой следует начать поиск.
ptr
Строка C-string, для которой следует искать функцию-член.
count
Число символов, начиная с первого, в строке C-string, для которой следует искать функцию-член.
str
Строка, для которой следует искать функцию-член.
Возвращаемое значение
Пример
basic_string::find_first_of
Выполняет поиск первого символа в строке, совпадающего с любым элементом заданной строки.
Параметры
char_value
Значение символа, для которого следует искать функцию-член.
offset
Индекс позиции, в которой следует начать поиск.
ptr
Строка C-string, для которой следует искать функцию-член.
count
Число символов, начиная с первого, в строке C-string, для которой следует искать функцию-член.
str
Строка, для которой следует искать функцию-член.
Возвращаемое значение
Пример
basic_string::find_last_not_of
Выполняет поиск по строке последнего символа, который не является ни одним элементом указанной строки.
Параметры
char_value
Значение символа, для которого следует искать функцию-член.
offset
Индекс позиции, в которой следует завершить поиск.
ptr
Строка C-string, для которой следует искать функцию-член.
count
Число символов, начиная с первого, в строке C-string, для которой следует искать функцию-член.
str
Строка, для которой следует искать функцию-член.
Возвращаемое значение
Пример
basic_string::find_last_of
Выполняет в строке поиск последнего символа, совпадающего с любым элементом заданной строки.
Параметры
char_value
Значение символа, для которого следует искать функцию-член.
offset
Индекс позиции, в которой следует завершить поиск.
ptr
Строка C-string, для которой следует искать функцию-член.
count
Число символов, начиная с первого, в строке C-string, для которой следует искать функцию-член.
str
Строка, для которой следует искать функцию-член.
Возвращаемое значение
Пример
basic_string::front
Возвращает ссылку на первый элемент в строке.
Возвращаемое значение
Ссылка на первый элемент строки, который не должен быть пустым.
Комментарии
basic_string::get_allocator
Возвращает копию объекта allocator, используемого для создания строки.
Возвращаемое значение
Распределитель, используемый строкой.
Комментарии
Функция-член возвращает сохраненный объект распределителя.
Распределители для класса string указывают, как этот класс управляет хранилищем. Для большинства задач программирования достаточно распределителей по умолчанию, доступных в классах контейнеров. Написание и использование собственного класса распределителя является расширенной функцией C++.
Пример
basic_string::insert
Вставляет элемент, несколько элементов или диапазон элементов в строку в указанной позиции.
Параметры
position
Индекс позиции за точкой вставки новых символов.
ptr
C-строка, которая полностью или частично вставляется в строку.
count
Число вставляемых знаков.
str
Строка, которая полностью или частично вставляется в целевую строку.
offset
Индекс части исходной строки, предоставляющей добавляемые знаки.
char_value
Символьное значение вставляемых элементов.
iter
Итератор, разрешающий положение, за которым вставляется знак.
first
Входной итератор, const_pointer или const_iterator адресация первого элемента в исходном диапазоне для вставки.
last
Входной итератор, или, указывающий на const_pointer const_iterator расположение объекта после последнего элемента в исходном диапазоне для вставки.
Возвращаемое значение
Либо ссылка на объект String, который получает новые символы функцией-членом, либо, в случае вставки отдельных символов, итератор, указывающий на положение вставленного символа, или нет, в зависимости от конкретной функции-члена.
Пример
basic_string::iterator
Тип, предоставляющий итератор произвольного доступа, который может читать элемент const в списке.
Комментарии
Тип iterator можно использовать для изменения значения символа и используется для прохода по строке в прямом направлении.
Пример
basic_string::length
Возвращает текущее количество элементов в строке.
Комментарии
Пример
basic_string::max_size
Возвращает максимальное количество символов в строке.
Возвращаемое значение
Максимальное количество символов, которое может содержать строка.
Комментарии
Исключение класса типа создается, когда операция создает строку с длиной, превышающей максимальный размер.
Пример
basic_string::npos
Целочисленное значение без знака, инициализированное значением-1, которое указывает на отсутствие найденных или всех оставшихся символов при сбое функции поиска.
Комментарии
Пример
basic_string::operator+=
Присоединяет символы к строке.
Параметры
char_value
Символ значение для добавления.
ptr
Символы C-строки для добавления.
right
Символы строки для добавления.
Возвращаемое значение
Ссылка на добавляемый объект строки с символами, переданными функцией-членом.
Комментарии
Пример
basic_string::operator=
Назначает значения новых символов содержимому строки.
Параметры
char_value
Символьное значение для присваивания.
ptr
Указатель на символы C-строки, которые должны быть назначены целевой строке.
right
Исходная строка, символы которой присваиваются целевой строке.
Возвращаемое значение
Ссылка на объект строки, которому функция-член будет присваивать новые символы.
Комментарии
Строкам можно присваивать новые символьные значения. Новое значение может быть строкой, C-строкой или одним символом. operator= Может использоваться, если новое значение можно описать с помощью одного параметра, в противном случае можно использовать функцию-член с assign несколькими параметрами, чтобы указать, какая часть строки должна быть назначена целевой строке.
Пример
basic_string::operator[]
Предоставляет ссылку на символ с указанным индексом в строке.
Параметры
offset
Индекс позиции элемента, на который должна быть ссылка.
Возвращаемое значение
Ссылка на символ строки в позиции, указанной с помощью индекса параметра.
Комментарии
Первый элемент строки имеет нулевой индекс, а следующие элементы последовательно индексируются положительными целыми числами. Это означает, что строка длиной n содержит n-й элемент, индексируемый по номеру n – 1.
operator[] работает быстрее, чем функция-член, at предоставляющая доступ на чтение и запись к элементам строки.
Возвращаемая ссылка может быть недействительной при перераспределении строк или изменении для не const строк.
При компиляции с параметром, _ITERATOR_DEBUG_LEVEL равным 1 или 2, при попытке получить доступ к элементу за пределами строки произойдет ошибка времени выполнения. Дополнительные сведения см. в разделе Проверенные итераторы.
Пример
basic_string::pointer
Тип, предоставляющий указатель на символьный элемент в строке или символьном массиве.
Комментарии
Пример
basic_string::pop_back
Удаляет последний элемент строки.
Комментарии
basic_string::push_back
Добавляет элемент в конец строки.
Параметры
char_value
Символ, который нужно добавить в конец строки.
Комментарии
Пример
basic_string::rbegin
Возвращает итератор на первый элемент в обратной строке.
Возвращаемое значение
Возвращает итератор произвольного доступа в первый элемент обращенной строки, указывая элемент, который был бы последним элементом в соответствующей необращенной строке.
Комментарии
rbegin используется с обратным строкой так же, как begin используется со строкой.
rbegin можно использовать для инициализации итерации по строке в обратном направлении.
Пример
basic_string::reference
Тип, предоставляющий ссылку на элемент в строке.
Комментарии
Тип reference можно использовать для изменения значения элемента.
Пример
basic_string::rend
Возвращает итератор, который указывает место, следующее за последним элементом в обращенной строке.
Возвращаемое значение
Обратный итератор произвольного доступа, который указывает место, следующее за последним элементом в обращенной строке.
Комментарии
rend используется с обратным строкой так же, как end используется со строкой.
rend можно использовать, чтобы проверить, достиг ли обратный итератор конца очереди.
Значение, возвращаемое, rend не должно быть разыменовано.
Пример
basic_string::replace
Заменяет элементы в строке в указанной позиции заданными символами или символами, скопированными из других диапазонов, строк или C-строк.
Параметры
str
Строка, представляющая источник символов для строки операнда.
position_1
Индекс строки операнда, в котором начинается замена.
number_1
Максимальное количество заменяемых символов в строке операнда.
position_2
Индекс строки параметра, в котором начинается копирование.
number_2
Максимальное количество используемых символов из C-строки параметра.
ptr
C-строка, представляющая источник символов для строки операнда.
char_value
Символ, который должен копироваться в строку операнда.
first0
Итератор, указывающий первый удаляемый символ в строке операнда.
last0
Итератор, указывающий последний удаляемый символ в строке операнда.
first
Итератор, const_pointer или const_iterator, указывающий первый символ, который должен копироваться в строку параметра.
last
Итератор, const_pointer или const_iterator, указывающий последний символ, который должен копироваться в строку параметра.
count
Сколько раз char_value копируется в строку операнда.
Возвращаемое значение
Строка операнда с выполненной заменой.
Пример
basic_string::reserve
Устанавливает вместимость строки не меньше указанного числа.
Параметры
count
Число символов, для которых резервируется память.
Комментарии
Наличие достаточной емкости важно, так как перераспределение занимает много времени. И он делает недействительными все ссылки, указатели и итераторы, ссылающиеся на символы в строке.
Вызов reserve является единственно возможным способом уменьшения емкости строки. Однако, как указано выше, это запрос без привязки и может не произойти.
Пример
basic_string::resize
Указывает новый размер строки, добавляя или удаляя элементы по мере необходимости.
Параметры
count
Новый размер строки.
char_value
Значение, которое присоединяемые символы инициализируется с помощью, если требуется больше элементов.
Комментарии
Пример
basic_string::reverse_iterator
Тип, предоставляющий ссылку на элемент в строке.
Комментарии
Тип reverse_iterator может изменять значение символа и используется для последовательного выполнения итерации по строке в обратном направлении.
Пример
basic_string::rfind
Поиск по строке в обратном направлении до первого вхождения подстроки, совпадающей с заданной последовательностью символов.
Параметры
char_value
Значение символа, для которого следует искать функцию-член.
offset
Индекс позиции, в которой следует начать поиск.
ptr
Строка C-string, для которой следует искать функцию-член.
count
Число символов, начиная с первого, в строке C-string, для которой следует искать функцию-член.
str
Строка, для которой следует искать функцию-член.
Возвращаемое значение
Пример
basic_string::shrink_to_fit
Удаляет излишнюю вместимость строки.
Комментарии
Эта функция-член удаляет все ненужное хранилище в контейнере.
basic_string::size
Возвращает текущее количество элементов в строке.
Возвращаемое значение
Пример
basic_string::size_type
Тип целого числа без знака, который может представлять число элементов и индексов в строке.
Комментарии
Пример
basic_string::starts_with
Проверьте, начинается ли строка с указанного префикса.
Параметры
c
Искомый префикс одного символа.
x
Строка символов, завершающаяся нулем, содержащая префикс для поиска.
Возвращаемое значение
true значение, если строка начинается с указанного префикса; false в противном случае — значение.
Комментарии
starts_with() Новое в C++ 20. Чтобы использовать его, укажите /std:c++20 параметр компилятора или более поздней версии.
Сведения о ends_with том, заканчивается ли строка указанным суффиксом, см. в разделе.
Пример
basic_string::substr
Копирует из указанного положения в строке подстроку, содержащую по крайней мере несколько символов.
Параметры
offset
Индекс поиска элемента в позиции, от которой делается копия строки; значение по умолчанию — 0.
count
Количество символов, копируемых при их наличии.
Возвращаемое значение
Объект подстроки, который является копией элементов строкового операнда, начиная с позиции, заданной первым аргументом.
Пример
basic_string::swap
Меняет местами содержимое двух строк.
Параметры
str
Исходная строка, элементы которой должны быть заменены на объекты в целевой строке.
Комментарии
Если переставляемые строки имеют один и тот же объект allocator, то функция-член swap :
В противном случае присваивания элементов и вызовы конструктора выделяются пропорционально числу элементов в двух управляемых последовательностях.
Пример
basic_string::traits_type
Тип, представляющий признаки символов для элементов, хранящихся в строке.
Комментарии
Пример
basic_string::value_type
Тип, представляющий тип символов, хранящихся в строке.