【发布时间】:2016-08-06 10:12:21
【问题描述】:
我不明白如何仅在 Stl 地图的一部分上进行迭代,而不是像在标准遍历中那样从头到尾进行迭代。这是我的代码:
auto end = temp_map.rbegin() + THRESHOLD_NUM;
for (auto rit = temp_map.rbegin(); rit != end; ++rit)
{
int s = rit->second;
for (int k = 0; k < MAX_ROWS; k++)
{
array_dist_it[k] = abs(input[k] - input_matrix[k][s]);
}
float av_real = mean(MAX_ROWS, array_dist_it);
float score_real = score_func(av_real);
rank_function(score_real, s);
}
}
我认为问题与 for 循环的语法有关,尤其是与迭代器有关。该错误与无效的运算符有关。
【问题讨论】:
-
这不是一个众包调试平台。你有没有经历过这些可能性? 你认为哪里不对?您尝试过什么来修复它?您认为还有哪些其他方法可能有效?你试过那些吗?您研究过哪些研究材料,为什么您认为其中推荐的方法不适合您的情况? Stack Overflow 不是 thought 的替代品;至少,这该死的不应该。
-
"有什么问题"怎么了?
-
对不起,如果我解释得不好,显然我已经尝试了所有想到的可能性,错误当然与迭代器有关。我不是来为自己辩解的,而是想和你一起寻求解决方案。显然,在询问之前我已经搜索了其他可能性。我不完全明白你的意思。如果对你来说我的问题是微不足道的,那就是另一点。
-
除非您提供确切的错误消息或证明问题的输出,否则我们无法看到这“显然不起作用”。
标签: c++ loops dictionary stl iterator