首页 > 解决方案 > 在 C++ 中查找范围的长度

问题描述

我已经定义了一个范围,我需要找到其中的元素数量。我目前的代码是

size_t c = 0;
for(auto elem : range){
     c++;
}
return c;

但是,编译器抱怨未使用的变量elem,我无法摆脱它。我虽然使用类似的东西

std::count_if(range.begin(), range.end(), [](type elem){return ture;});

但我觉得这有点矫枉过正,而且似乎不对。

我想知道是否有一种更好的系统方法可以在不定义额外变量的情况下实现这一目标?

标签: c++rangec++14stdcounting

解决方案


如果(出于某种原因)您的范围没有size()成员函数,您可以使用std::distance. 这应该始终有效,因为范围需要具有开始和结束迭代器。

std::distance(cbegin(range), cend(range));

推荐阅读