В моей программе мне нужно проверить первый символ std::string и использовать что-то вроде этого:
std::string
if(string.front() == '-')
Интересно, имеет ли значение использование приведенного ниже кода вместо этого?
if(string[0] == '-')
Из справочника для string::front:
string::front
Эффекты: Эквивалентно: return operator[](0);
return operator[](0);
Итак нет никакой разницы между двумя показанными вами фрагментами кода.
Оба front() и operator[] возвращают ссылку на элемент, поэтому никакой разницы;
front()
operator[]
Если вам нужна проверка границ, вы можете использовать std::string::at, который выполняет проверку границ и генерирует исключение std::out_of_range.
std::string::at
std::out_of_range