我下面的類:mem_fun和bind1st問題
class A {
public:
// ctr and etc ...
A* clone(B* container);
};
現在,我已經填充的vector<A*> availableObjs
。我想對其中的每一個調用clone
,因此將克隆的對象插入到類型爲vector<A*>
的新容器clonedObjs
中。我試圖追蹤 - 但它不能編譯:
transform(availableObjs.begin(), availableObjs.end(), back_inserter(clonedObjs),
bind1st(mem_fun(&A::clone), container)); // container is of type B*
有沒有簡單的方法?我有很多類似於A的東西 - 所以把它們當作一個函數是太多的任務。
你確定你想在你的容器指針?您不得在該算法上調用任何修改算法(例如排序)。但是,您可以使用shared_ptr 的向量,然後再次支持值語義。 – fmuecke