将对象矢量划分为2个或更多个子组

Joh*_*ohn 1 c++ stl

我想基于一些共同特征将参考向量MyObject(即vector<MyObject*>)分割成2个或更多个子向量.

我有一个等价函数bool belongToSameGroup(MyObject *x, MyObject *y);,true如果某些数据字段MyObject是相等的,false否则.因为这种等价不是一般性的,仅用于特定目的,我宁愿不超载operator==.

我可以创建一个最好的方法,例如,一个<vector<MyObject*>'s(即vector< vector<MyObject*> >)的向量,以便元素根据它们在函数下的等价性进行分组belongToSameGroup?我不想做一堆for循环并尽可能地利用STL算法和容器.

Bil*_*eal 5

我想std::partition是你想要的.(嘿,它甚至在你问题的标题中!)