2つのイテレータを使用してクラスのベクトル内の要素を比較するための最も効率的で最速の方法は何ですか?ベクトルはソート可能ではなく、クラスにオーバーロードされた">"演算子があります。単純なベクトル反復にはboostforeachを使用します。
私は以下のようなことをしています。
vector<TestClass*> vec;
vector<TestClass*>::iterator jIter;
bool isErased=false;
vector<TestClass*>::iterator iIter = vec.begin();
if(!vec.empty()){
while(iIter < vec.end()-1) {
isErased = false;
for (jIter = iIter+1; jIter < vec.end();jIter++) {
if((*(*iIter))<=(*(*jIter))) {
delete *jIter;
jIter = vec.erase(jIter);
jIter--;
}
else if((*(*iIter))>=(*(*jIter))) {
delete *iIter;
iIter = vec.erase(iIter);
isErased = true;
break;
}
}
if(!isErased) iIter++;
}
ありがとうございました。