Шаг 393.
Библиотека STL.
Строение строковых классов. Обращение к символам

    На этом шаге мы рассмотрим методы, работающие с отдельными символами.

    Для обращения к отдельных символам строк имеются следующие методы:

char& string::operator[] (size_type idx) 
char string::operator[] (size_type idx) const
Обе формы возвращают символ с индексом idx (первому символу соответствует индекс 0).

    Для константных строк значение length() является действительным индексом; при обращении по нему оператор возвращает значение, сгенерированное конструктором по умолчанию для типа символов (\0 для типа string).

    Для неконстантных строк значение length() не является действительным индексом.

    Передача недействительного индекса приводит к непредсказуемым последствиям.

    Ссылки, возвращаемые для неконстантных строк, могут стать недействительными из-за модификаций строки или перераспределения памяти.

    Если вызывающая сторона не может проверить действительность индекса, следует использовать функцию at().

  char& string::at (size_type idx)
  const char& string::at (size_type idx) const
Обе формы возвращают символ с индексом idx (первому символу соответствует индекс 0).

    Для всех строк значение length() не является действительным индексом.

    При использовании недействительного индекса (отрицательного, а также большего либо равного size()) генерируется исключение out_of_range.

    Ссылки, возвращаемые для неконстантных строк, могут стать недействительными из-за модификаций строки или перераспределения памяти.

    Если при вызове вы уверены в действительности индекса, можно воспользоваться оператором [], который работает быстрее.

    На следующем шаге мы рассмотрим методы, используемые для построения C-строк и символьных массивов.




Предыдущий шаг Содержание Следующий шаг