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


C++ query::singularity方法代码示例

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


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

示例1:

vector<row> table::select(const query &q) {
  vector<row> results;

  row temp_row;
  // perform key-search
  if (q.singularity(_key)) {
    for (int i=0;i<_keys.size();i++) {
      temp_row.add((*_keys[i].col), _keys[i].data);
      if (q.partial_eval(_key, temp_row)) {
        results.push_back(read_row(_keys[i].fpos/_row_size));
        //if (results.back().is_empty()) results.pop_back();
        if (results.back().is_empty() || !q.eval(results.back())) {
          results.erase(results.end()-1);
        }
      }
      temp_row.clear();
      if (q._limit > -1 && results.size() >= q._limit) break; //results.erase(results.end()-1);
    }
    
/*    for (int i=0;i<results.size();i++) {
      if (results[i].is_empty() || !q.eval(results[i])) {
        results.erase(results.begin()+i);
        --i;
      }
    }*/
    
    // truncate results to q._limit
    /*if (q._limit > -1) while (results.size() > q._limit) {
      if (results.size() == 0) break;
      results.erase(results.end()-1);
    }*/
  }
  // perform full search:
  else {
    for (int i=0;i<_row_count;i++) {
      results.push_back(read_row(i));
      if (results.back().is_empty() || !q.eval(results.back())) results.pop_back();
      // limit results size to q._limit
      if (results.size() >= q._limit) break;
    }
  }

  return results;
}
开发者ID:joshmg,项目名称:db2,代码行数:44,代码来源:table.cpp


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