帮我理解std :: erase

Pau*_*lin 2 c++ stl

在"C++ In A Nutshell"一书中,有以下示例代码

std::vector<int> data
...
std::erase(std::remove(data.begin(), data.end(), 42),
  data.end());
Run Code Online (Sandbox Code Playgroud)

我认为'erase'是一个成员函数,所以不应该是'data.erase'而不是'std :: erase'?有没有什么方法c ++编译器可以告诉你想要成员函数的成员,或者本书是否省略了擦除模板函数的任何文档,或者示例错误?

Pav*_*aev 13

erase是一个成员函数.提供的样本不正确.


Ale*_*tov 7

没有std::erase.std::map::erase,std::list::erase存在.但不std::erase存在.

看看这个关于幻影std :: erase的问题.