在 C++ 中查找范围的长度

nar*_*ian 3 c++ std range counting c++14

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

size_t c = 0;
for(auto elem : range){
     c++;
}
return c;
Run Code Online (Sandbox Code Playgroud)

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

std::count_if(range.begin(), range.end(), [](type elem){return ture;});
Run Code Online (Sandbox Code Playgroud)

但我觉得这是一种矫枉过正,似乎也不对。

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

Tim*_*imo 5

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

std::distance(cbegin(range), cend(range));
Run Code Online (Sandbox Code Playgroud)