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


C++ set::swap方法代码示例

本文整理汇总了C++中set::swap方法的典型用法代码示例。如果您正苦于以下问题:C++ set::swap方法的具体用法?C++ set::swap怎么用?C++ set::swap使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在set的用法示例。


在下文中一共展示了set::swap方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: lock

void AdInvIdx<KEY>::Filter(const set<KEY> & keys, set<Ice::Long> & gids) {
  vector<set<Ice::Long> > g_sets;
  IceUtil::RWRecMutex::WLock lock(mutex_);
  for (typename set<KEY>::const_iterator kit = keys.begin(); kit != keys.end(); ++kit) {
    typename map<KEY, set<Ice::Long> >::iterator mit = map_.find(*keys);
    if (mit == map_.end()) {
      continue;
    } else {
      set<Ice::Long> tmp;
      set_intersection(mit->second.begin(), mit->second.end(), gids.begin(),
          gids.end(), inserter(tmp, tmp.begin()));
      g_sets.push_back(tmp);
    }
  }
  if(g_sets.empty()){
    gids.clear();
    return;
  }else if(g_sets.size() == 1){
    gids.swap(g_sets.at(0));
    return;
  }
  set<Ice::Long> result;
  result.swap(g_sets.at(0));
  for(vector<set<Ice::Long> >::iterator vit = ++(g_sets.begin());vit != g_sets.end();++vit){
    set<Ice::Long> tmp;
    set_union(result.begin(),result.end(),(*vit).begin(),(*vit).end(),inserter(tmp,tmp.begin()));
    result.swap(tmp);
  }
  gids.swap(result);
}
开发者ID:bradenwu,项目名称:oce,代码行数:30,代码来源:AdInvIdx.cpp

示例2: Filt

//---------------------------------------------------------------------------
void SpecialFilter::Filt(set<int> & targets) {
  set<int> tmpset;

  IceUtil::Mutex::Lock lock(mutex_);
  //  set_intersection(targets.begin(),targets.end(), ids_.begin(), ids_.end(),std::inserter(tmpset,tmpset.begin()));
  for (set<int>::iterator sit = targets.begin(); sit != targets.end(); ++sit) {
    if (ids_.find(*sit) != ids_.end()) {
      tmpset.insert(*sit);
    }
  }
  targets.swap(tmpset);
}
开发者ID:bradenwu,项目名称:oce,代码行数:13,代码来源:ExpressionCache.cpp


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