c++ - 使用提供的偏移量和限制对两个循环结果进行排序
问题描述
我目前正在尝试返回在两个 for 循环中获得的结果,其中包含两个可选参数limit
和一个offset
. 结果还将返回more
带有剩余条目的无符号整数。
循环前的初始化数据:
uint32_t search_results = 0;
uint32_t search_limit = p.limit;
bool contSearch = false;
uint32_t search_offset = p.offset;
uint32_t returnCount = 0; //more
第一个循环:
for (size_t knpos = 0; knpos < names_rows_result.rows.size(); knpos++)
这是允许偏移和限制在第一个循环之后和第二个循环之前工作的第一组逻辑:
if (!contSearch) {
if (search_limit >= requests_rows_result.rows.size() || (p.limit - p.offset) == 0 || p.limit == 0) {
search_limit = requests_rows_result.rows.size();
contSearch = true;
} else {
search_limit = (p.limit - p.offset);
}
search_results = (requests_rows_result.rows.size() - search_limit);
} else {
search_limit = requests_rows_result.rows.size();
search_results += (requests_rows_result.rows.size() - search_limit);
}
在第二个循环内:
if( search_offset < requests_rows_result.rows.size() ){
for (size_t pos = 0 + search_offset; pos < search_limit; pos++) {
//GATHERS DATA
result.requests.push_back(DATA);
returnCount++;
}
}
这似乎适用于第一个循环,但是当它进入下一个条目时knpos
,我在只返回请求的数据时遇到了一些麻烦。
解决方案
推荐阅读
- c - 如何在 C 中检查十六进制编码字符串中的“00”?
- c++ - 使用 std::vector 的 OpenCL 矩阵乘法
- c# - 文本叠加在另一个之上
- rundeck - 如何通过shell向rundeck rd程序提交参数
- mysql - MySQL UDF 返回“错误代码:1127。在库中找不到符号 'xx'”
- discord.js - 来自变量/字符串的 guild.members.get() 返回未定义
- firebase - Firebase 中的 Varnish 错误导致我的网站从 Google 索引中消失
- time - 在 OCaml 中以毫秒精度获取当前秒数
- python - 如何将双反斜杠替换为单反斜杠
- javascript - 在Node js中的功能之外无法访问外部IP