std::string my_string = "";
char test = my_string[0];
Я заметил, что это не сбой, и каждый раз, когда я его тестировал, тест равен 0.
Могу ли я зависеть от него всегда 0? или это произвольно?
Это плохое программирование?
Изменить: Из некоторых комментариев я понимаю, что есть некоторые недоразумения относительно полезности этого.
Цель этого - НЕ проверять, является ли строка пустой. Не нужно проверять, является ли строка пустой.
Ситуация такова, что есть строка, которая может быть или не быть пустым. Меня интересует только первый символ этой строки (если она не пустая).
Мне кажется, было бы менее эффективно проверять, является ли строка пустой, а затем, если она не пуста, посмотрите на первый символ.
if (! my_string.empty())
test = my_string[0];
else
test = 0;
Вместо этого я могу просто взглянуть на первого символа без необходимости проверять, пуста ли строка.
test = my_string[0];