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_iteratorconst-итератор
reverse_iteratorРеверсивный итератор
const_reverse_iteratorРеверсивный const-итератор
value_typeТип символа, сохраненного в строке
allocator_typeТип распределителя
pointerУказатель на символ внутри строки
const_pointerconst-указатель на символ внутри строки
traits_typetypedef-имя для 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

Тип, представляющий тип символов, хранящихся в строке.

Комментарии

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *