如何在二维向量中使用计数

Posted

技术标签:

【中文标题】如何在二维向量中使用计数【英文标题】:How to use Count in 2D Vector 【发布时间】:2017-07-16 11:11:28 【问题描述】:

我有一个二维字符串向量,想计算某个单词重复了多少次。例如:

#include <vector>
#include <string>
#include <algorithm>
using namespace std;

int main()

    vector< vector<string> > vec(4, vector<string>(4, "word") );
    count( vec.begin(), vec.end(), "certain word" );

但是上面给出了错误。我该怎么做?

【问题讨论】:

您必须遍历外部向量才能获得内部向量。然后你必须遍历内部向量来计算字符串中的“特定单词”。 内部向量是否已经包含单个单词,还是包含多个单词的字符串? @user0042 是的,只有单个单词。 @mhm 那么你在下面找到正确答案。 【参考方案1】:

您需要对搜索单个向量运行计数并对结果求和:

#include <vector>
#include <string>
#include <algorithm>
using namespace std;

int main()

    vector< vector<string> > vec(4, vector<string>(4, "string of words") );
    size_t sum = 0;
    for(auto& v: vec) 
        sum += count( v.begin(), v.end(), "certain word" );
    

【讨论】:

您忘记更新count 呼叫。而且它不计算 strings. 中的单词 它工作了.. 必须将 vec.begin() ... 更改为 v.begin()... 非常感谢先生。

以上是关于如何在二维向量中使用计数的主要内容,如果未能解决你的问题,请参考以下文章

如何在二维向量的定义位置插入向量?

我们如何在 C++ 中将二维数组/向量作为函数参数传递? [复制]

这段代码有啥错误,在二维向量中如何添加额外的元素?

如何将数据存储在二维向量中?

如何在不知道宽度的情况下将元素存储在二维向量中?

我们如何在 Java 中增加二维向量的大小?