如何计算向量的向量

时间:2014-08-13 20:29:06

标签: c++ stdvector

如何根据最内层向量的第二个值使用std::count计算向量向量?

我将向量声明为:

vector< vector<int> > distance(data.size(),vector<int>(3)); 

2 个答案:

答案 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::countstd::count_if更合适。