本文整理汇总了C++中SortedListPtr::CF方法的典型用法代码示例。如果您正苦于以下问题:C++ SortedListPtr::CF方法的具体用法?C++ SortedListPtr::CF怎么用?C++ SortedListPtr::CF使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SortedListPtr
的用法示例。
在下文中一共展示了SortedListPtr::CF方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SLInsert
int SLInsert(SortedListPtr list, void *newObj)
{
node *p = list->base->next;
// find the first item larger or equal to newObj
while (p != list->base) {
if (list->CF(newObj, p->data) != -1) {
break;
}
p = p->next;
}
node *tmp = malloc(sizeof(node));
if (tmp == NULL)
return 0;
// initialize a node
tmp->refByItrCount = 0;
tmp->data = newObj;
// insert a node
tmp->prev = p->prev;
p->prev->next = tmp;
tmp->next = p;
p->prev = tmp;
return 1;
}
示例2: SLRemove
int SLRemove(SortedListPtr list, void *newObj)
{
node *p = list->base->next;
// find the first item equal to newObj
while (p != list->base) {
if (list->CF(newObj, p->data) == 0) {
break;
}
p = p->next;
}
// if not find an item equal to newObj
if (p == list->base)
return 0;
p->next->prev = p->prev;
p->prev->next = p->next;
//if there is no iterator "pointing" to this item, free it.
if (p->refByItrCount == 0) {
list->DF(p->data);
free(p);
}
p->next = NULL;
p->prev = NULL;
return 1;
}