Удаление строки из std::string
Пытаюсь удалить комментарий из строки типа std::string но удаляется и часть того - чего я и не планировал удалять
std::string Code = "int as = 25;\nint aa = 1;\n//hello world!\nstring str = \"stroka\";";
size_t code_pos = 0;
std::vector<size_t> str_del;
std::vector<size_t> end_del;
while (Code.find("//", code_pos) != Code.npos)
{
size_t start_comm = Code.find("//",code_pos);
size_t end_comm = Code.find_first_of('\n', start_comm);
str_del.push_back(start_comm);
end_del.push_back(end_comm);
code_pos = end_comm;
std::cout << "\nDEL("+Code.substr(start_comm, end_comm) + ")\n";
}
for (size_t i = 0; i < str_del.size(); i++)
{
Code.erase(str_del[i], end_del[i]);
}
std::cout << Code;
В итоге удаляется это //hello world!\nstring str = \"stroka\";
А не только комментарий, в чем может быть проблема?
Источник: Stack Overflow на русском