- 我想知道,如果用这个概念正确删除了用“new”生成的对象。
- 我没有使用“bind”而不是“bind2nd”。我该怎么做呢?
- 最后一个问题:我如何使用 lambda 项而不是命名函数来做同样的事情?
为什么我使用列表?我决定使用列表而不是向量,因为我的对象没有排序。最后,我想为面向对象带来一些“瀑布式”代码,主要是因为性能问题(你会在这里看到问题),所以我需要一个概念,我可以快速访问容器层次结构中的对象和让他们互相交流,也很快。也许想想模块化合成器。
class Layer {
private:
string name;
bool active;
public:
Layer();
Layer(string m_name, bool m_active);
bool isName(string m_name);
};
// ... constructors
bool Layer::isName(string m_name) {
return name == m_name;
}
class Stack {
public:
list<Layer*> layer;
list<Layer*>::iterator iter;
};
int main() {
Stack stack;
stack.layer.push_back(new Layer);
stack.layer.push_back(new Layer("snail", true));
stack.layer.push_back(new Layer("squirrel", false));
string search = "snail";
stack.layer.remove_if(bind2nd(mem_fun(&Layer::isName), search));
return 0;
}