我的測試程序的目標是在像下面這樣的字符串簡單向量中擦除單元格。 程序失敗(分段故障)。std ::刪除不起作用
static void display(std::vector<std::string> const &vec)
{
std::vector<std::string>::const_iterator It = vec.begin();
for (; It != vec.end(); ++It)
std::cout << *It << " ";
std::cout << std::endl;
}
int main(void)
{
std::vector<std::string> vec;
size_t index = 0;
vec.push_back("Toto");
vec.push_back("Titi");
vec.push_back("Tata");
vec.push_back("Tutu");
display(vec);
std::vector<std::string>::iterator It = vec.begin();
for (size_t idx = 0; It != vec.end(); ++It, idx++)
if (!(*It).compare("Tutu"))
index = idx;
vec.erase(std::remove(vec.begin(), vec.end(), index), vec.end()); //Segmentation fault
display(vec);
getchar();
return (0);
}
有人能幫助我嗎?在此先感謝您的幫助。
難道你需要傳遞一個字符串'remove'? – chris
更仔細地閱讀關於「刪除」的參數。它不需要索引。 –