以下代码计算字符串" 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矢量的原因。
答案 0 :(得分:0)
似乎 InputIterators 没有这样的解决方案。因此,这是 if 条件和 for 循环的解决方案:
unsigned int c = 0;
for(auto vec : dataIn) {
if(vec[n] == "CMO") {
c += 1;
}
}