C++ std::vector count统计某个元素个数 是否存在某个值

Posted 软件工程小施同学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ std::vector count统计某个元素个数 是否存在某个值相关的知识,希望对你有一定的参考价值。

        int nCount = std::count(strVec.begin(), strVec.end(), target);
        if (nCount > 0)
        {
            std::cout << "method2: find " << target << " exists." << std::endl;
        }

#include <iostream>
#include <vector>
#include <string>

// 为了便于示例,声明全局容器
std::vector<std::string> strVec;

void methods(const std::string& target)
{
    // 方法一:遍历容器,查找相等元素判断是否存在
    {
        for (const auto& item : strVec)
        {
            if (item == target)
            {
                std::cout << "method1: find " << target << " exists." << std::endl;
                break;
            }
        }
    }
    // 方法二:获取元素个数,通过个数判断是否存在
    {
        int nCount = std::count(strVec.begin(), strVec.end(), target);
        if (nCount > 0)
        {
            std::cout << "method2: find " << target << " exists." << std::endl;
        }
    }
    // 方法三:查询元素迭代器,通过迭代器有效性判断是否存在
    {
        auto iter = std::find(strVec.begin(), strVec.end(), target);
        if (iter != strVec.end())
        {
            std::cout << "method3: find " << target << " exists." << std::endl;
        }
    }
    // 方法四:查询相等元素的迭代器,通过迭代器有效性判断是否存在
    {
        auto iter = std::find_if(strVec.begin(), strVec.end(), [&](const std::string& item)->bool
            { return (item == target); });
        if (iter != strVec.end())
        {
            std::cout << "method4: find " << target << " exists." << std::endl;
        }
    }
}

int main()
{
    strVec = { "C", "C++", "Java", "Python", "Lua", "Sql" };
    // 场景1:查找Ruby
    std::cout << "Find Ruby" << std::endl;
    methods("Ruby");
    // 场景2:查找C++
    std::cout << "Find C++" << std::endl;
    methods("C++");

    system("pause");
    return 0;
}

// result
/*
Find Ruby
Find C++
method1: find C++ exists.
method2: find C++ exists.
method3: find C++ exists.
method4: find C++ exists.
*/

std::vector 判断vector容器中是否存在某元素 - kaizen - 博客园

以上是关于C++ std::vector count统计某个元素个数 是否存在某个值的主要内容,如果未能解决你的问题,请参考以下文章

C++ 二维 map vector 赋值 遍历 实例 降序

C++ 二维 map vector 赋值 遍历 实例 降序

使用 std::count_if() 时出现错误“没有从 'std::vector<double, std::allocator<double> >' 到 'double *'

C++随机选择std::vector的非空元素<std::vector>>

C++ --- using用法总结

C++:使用 OpenMP 插入 std::vector