过去一周我一直在阅读模板、函子、回调函数,并参考了一些好书和文章。
然而,我觉得,除非我能获得良好的实践——在模板中编程并使用函子回调,否则我无法真正理解所有概念或在编码时流利地使用它们。
任何人都可以建议一些文章或书籍或网站,其中有问题的定义以及相同的解决方案。我可以为这个问题编写代码,然后检查我的解决方案是否足够好..
我也知道我们的一些堆栈溢出成员是模板和回调函数方面的专家。如果他们能设计一个问题并发布一个解决方案,那就太好了,很多像我这样的模板初学者都可以从中受益。
我个人认为这是学习任何东西的错误方法。准备提出此类问题的人几乎肯定不会是技术专家。最好的学习方法是找到一个对你很重要的现实问题,然后使用技术解决问题,通过阅读文本和参考书,并在此类网站上发布相关问题。
一个很好的练习是用匿名函子替换命名函数。例如,不要使用谓词,例如
bool is_overdrawn(const Account& account)
{
return !account.is_balanced();
}
,您可以通过 合成一个仿函数std::not1(std::mem_fun_ref(&Account::is_balanced))
。