2

这是在 g++ 4.6.3 中产生错误的代码

for (int i = 0; i < strlen(chars); i++)
 {
  a.erase (remove(a.begin(), a.end(), chars[i]), a.end());
 }

我得到的错误是

error: cannot convert 'std::basic_string<char>::iterator {aka __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >}' to 'const char*' for argument '1' to 'int remove(const char*)'

该代码在代码块 12.11 中运行良好。

4

1 回答 1

3

你需要

#include <algorithm>

并使用std::remove而不是remove.

否则,它会尝试使用remove对删除文件很有用的函数,并且它接受const char*作为参数。

于 2013-11-12T16:32:03.777 回答