std :: string resize приводит к тому, что строки, которые кажутся равными, больше не равны.Это может ввести в заблуждение, когда я наведу курсор на переменную в моем отладчике, и они, кажется, содержат одно и то же значение.
Я думаю, что это сводится к тому, что я ожидал, что оператор == остановится при первомнулевой символ, но он продолжает идти до конца размера.Я уверен, что это работает как задумано, но я застрял на проблеме, вызванной этим некоторое время, поэтому я хотел понять, почему вы будете продолжать сравнивать символы даже после первого нулевого символа.спасибо!
int main(void)
{
std::string test1;
test1.resize(10);
test1[0] = 'a';
std::string test2 = "a";
//they are not equal
bool same = (test1 == test2);
return 0;
}