我最近问了一个关于从向量中删除项目的问题。好吧,我得到的解决方案有效,但我不明白 - 我找不到任何解释它的文档。
struct RemoveBlockedHost {
RemoveBlockedHost(const std::string& s): blockedHost(s) {}
// right here, I can find no documentation on overloading the () operator
bool operator () (HostEntry& entry) {
return entry.getHost() == blockedHost || entry.getHost() == "www." + blockedHost;
}
const std::string& blockedHost;
};
用作:
hosts.erase(std::remove_if(hosts.begin(), hosts.end(), RemoveBlockedHost(blockedhost)), hosts.end());
我查看了 std::remove_if 的文档,它说只有当类重载 () 运算符时才能传递类而不是函数。什么信息都没有。
有谁知道以下链接:
-
一本包含示例/解释的书
-
或者,在线文档/教程的链接
对此的帮助将不胜感激。我不喜欢在我的软件中添加代码,除非我理解它。我知道它有效,并且我(有点)熟悉运算符重载,但我不知道 () 运算符的用途。