在“C++ In A Nutshell”一书中,有以下示例代码
std::vector<int> data
...
std::erase(std::remove(data.begin(), data.end(), 42),
data.end());我以为'erase‘是一个成员函数,所以它不应该是'data.erase’而不是'std::erase‘吗?c++编译器有没有办法告诉你想要在哪个成员上调用成员函数,或者书中省略了任何关于擦除模板函数的文档,或者这个例子是错的?
发布于 2009-12-01 03:01:42
erase是一个成员函数。提供的样本不正确。
发布于 2009-12-01 03:06:30
没有std::erase。std::map::erase,std::list::erase存在。但是不存在std::erase。
查看this question关于幻影std::erase的信息。
发布于 2009-12-01 03:10:43
是的,erase是一个成员函数,所以它应该是data.erase()而不是std::erase()。
https://stackoverflow.com/questions/1821703
复制相似问题