【发布时间】:2023-02-26 18:54:30
【问题描述】:
我很抱歉这个标题,但我实际上不确定正确的术语。
例如,我有以下元素。
vector<int> n = {10, 20, 50, 35, 40, 48, 100};
然后我想计算范围内有多少元素1个到30.所以答案会是2个自从10和20是在1个到30范围。
我可以这样做;
vector<int> n = {10, 20, 50, 35, 40, 48, 100};
int counter=0;
for(int x:n){
if(x>=1 && x<=30)
counter++;
}
但是有更好的方法吗?
【问题讨论】:
-
您可以使用更实用的样式,但我认为您的操作方式没有任何问题。普通的 for 循环通常是最清晰的。
-
@Edd虽然有效,但感觉很难看,而且当我想计算其他范围集时代码行太多。例如 1 到 30、31 到 40、41 到 60、61 到 80、81 到 100,等等。这意味着我需要声明更多的反击和条件。
-
开放式反馈更适合Code Review。我也建议cppreference.com。
-
对于您的标题,也许“计算满足特定条件的向量的值”会更具描述性?
-
@发行版“当我想计算其他范围集时代码行太多”-- 这就是为什么应该为每个任务编写一个函数(又名“更实用的风格”)。如果您的代码在一个将低值和高值作为参数的函数中(而不是直接使用
1和30),那么相同的函数可以用于任何范围。
标签: c++