我在互联网上读到,如果你正在std::vector重复清理(紧密循环),最好使用resize(0)而不是clear(),因为它可能更快.我不确定这一点.有没有人对此有明确的答案?
只是为了好玩,我试图用带有boost :: bind的std :: find_if编写一行,以检查地图中向量中给出的所有键是否都没有值,但实际上无法提供一个整齐的代码行.
这是我的尝试
vector<string> v;
v.push_back("a");
v.push_back("2");
...
map<string, string> m;
m.insert("b","f");
...
std::find_if(v.begin(), v.end(), boost::bind(&string::empty, boost::bind(&map<string,String>::operator[], _1), _2 )) != v.end();
Run Code Online (Sandbox Code Playgroud)
显然这是一个很大的失败......有人试过这样的事吗?
我想分解一个类,使其与执行某个任务的逻辑分离,以便用户可以按照自己的意愿编写新策略而不会干扰中心模型.所以,我想使用模板化策略类,但不必让策略的用户进行模板化:
class Model {
...
boost::shared_ptr< Strategy < T > > m_pStrategy;
...
public:
template < typename T >
void DoSomething() { m_pStrategy < T > ::DoSomething(); }
};
Run Code Online (Sandbox Code Playgroud)
我希望DoSomething函数不被模板化.有没有其他方法可以实现我想要做的事情?
谢谢.