本文整理汇总了C++中ObjectList::move方法的典型用法代码示例。如果您正苦于以下问题:C++ ObjectList::move方法的具体用法?C++ ObjectList::move怎么用?C++ ObjectList::move使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ObjectList
的用法示例。
在下文中一共展示了ObjectList::move方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: InsertAndRemoveDuplicates
void Object::InsertAndRemoveDuplicates(ObjectList& set,
int old) {
cout << "******* Object::InsertAndRemoveDuplicates() " << endl;
// This _is_ still used by Query::GatherNewObjects() by CombineMapsVQ().
// I think no place uses this nomore. Should be obsoleted ???
for (size_t i=old; i<set.size(); i++) {
size_t p = i, q = i;
double val = set[i].Value();
for (int j=old-1; j>=0; j--) {
if (val>set[j].Value())
p = j;
else if (q!=i)
break;
if (q==i && set[j].Match(set[i])) {
val = set[j].AddValue(val); // OBS! AddValue()
p = q = j;
}
}
set.move(q, p);
if (q==i)
old++;
else {
set.swap_objects(i, set.size()-1);
set.erase(set.size()-1);
i--;
}
}
}
示例2: SortListByRank
void Object::SortListByRank(ObjectList& list) {
int k = 0;
for (size_t j=1; j<list.size(); j++) {
if (!list[j].Retained())
continue;
int r = list[j].Rank();
for (k=j-1; k>=0; k--)
if (list[k].Retained() && list[k].Rank()<=r)
break;
/*
cout << "Object::SortList() val[" << j << "]=" << val
<< " val[" << k+1 << "]=" << list[k+1].Rank() << endl;
*/
list.move(j, k+1);
}
}
示例3: SortListByValue
void Object::SortListByValue(ObjectList& list) {
// This _is_ still used by Query::StageFinalSelect().
//Obsoleted("Object::SortList(ObjectList&)");
int k = 0;
for (size_t j=1; j<list.size(); j++) {
if (!list[j].Retained())
continue;
float val = list[j].Value();
for (k=j-1; k>=0; k--)
if (list[k].Retained() && list[k].Value()>val)
break;
/*
cout << "Object::SortList() val[" << j << "]=" << val
<< " val[" << k+1 << "]=" << list[k+1].Value() << endl;
*/
list.move(j, k+1);
}
}