当前位置: 首页>>代码示例>>C++>>正文


C++ SortedListPtr::CF方法代码示例

本文整理汇总了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;
}
开发者ID:olatraaya,项目名称:cs214,代码行数:23,代码来源:sorted-list.c

示例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;
}
开发者ID:olatraaya,项目名称:cs214,代码行数:24,代码来源:sorted-list.c


注:本文中的SortedListPtr::CF方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。