Есть ли разница между std :: string front () и [0]? - PullRequest
1 голос
/ 10 июля 2020

В моей программе мне нужно проверить первый символ std::string и использовать что-то вроде этого:

if(string.front() == '-')

Интересно, имеет ли значение использование приведенного ниже кода вместо этого?

if(string[0] == '-')

Ответы [ 2 ]

4 голосов
/ 10 июля 2020

Из справочника для string::front:

Эффекты: Эквивалентно: return operator[](0);

Итак нет никакой разницы между двумя показанными вами фрагментами кода.

0 голосов
/ 10 июля 2020

Оба front() и operator[] возвращают ссылку на элемент, поэтому никакой разницы;

Если вам нужна проверка границ, вы можете использовать std::string::at, который выполняет проверку границ и генерирует исключение std::out_of_range.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...