如何根据最内层向量的第二个值使用std::count
计算向量向量?
我将向量声明为:
vector< vector<int> > distance(data.size(),vector<int>(3));
答案 0 :(得分:4)
您无法使用std::count
。您可以使用std::count_if
。
std::count_if(distance.begin(), distance.end(),
[](vector<int> const& v) { return v[1] == whatever; });
答案 1 :(得分:2)
您可以使用它(即std::count_if
),方法与“一维”向量相同。
例如
#include <vector>
#include <algorithm>
//,,,
int value = SomeValue;
auto n = std::count_if( distance.begin(), distance.end(),
[&value] ( const std::vector<int> &v )
{
return v.size() >= 2 && v[1] == value;
} );
考虑到有时使用标头std::accumulate
中声明的算法<numeric>
而不是算法std::count
和std::count_if
更合适。