C ++:计入2d向量的特定列

时间:2016-10-26 19:48:04

标签: c++

以下代码计算字符串" CMO"的次数。发生在2d矢量dataIn

第n行
vector< vector<string> > dataIn ( nrows, vector<string> (ncolumns) );
int mycount = count(dataIn[n].begin(), dataIn[n].end(), "CMO");

现在,我想在第n列中做同样的事情。有人能帮我吗?我知道,有几种方法可以通过使用 if 条件和循环来解决这个问题。但是,我的问题与InputIterators有关(首先是InputIterator,最后是InputIterator):

count (InputIterator first, InputIterator last, const T& val)

如何将InputIterators设置为仅考虑第n列? 2d矢量很大,这就是为什么我不想检查整个2d矢量的原因。

1 个答案:

答案 0 :(得分:0)

似乎 InputIterators 没有这样的解决方案。因此,这是 if 条件和 for 循环的解决方案:

unsigned int c = 0;
for(auto vec : dataIn) {
  if(vec[n] == "CMO") {
    c += 1;
  }
}