判断一个std::list中的元素是否完全相同和完全不同

方法一:

可以将list中的数据放到一个set里面,利用set中的元素的唯一性,再比较set和list的长度

#include <iostream>
#include <list>
#include <set>
#include <vector>

using namespace std;
bool same_num(std::list<int>& data)
{
    std::set<int> t_set(data.begin(), data.end());
    for (auto& elem : t_set)
    {
        std::cout << elem << \" \";
    }
    return t_set.size() == size_t(1);
}

bool different_num(std::list<int>& data)
{
    std::set<int> t_set(data.begin(), data.end());
    for (auto& elem : t_set)
    {
        std::cout << elem << \" \";
    }
    return t_set.size() == data.size();
}

int main(int argc, char *argv[])
{
    std::list<int> t_list{1,2,3,4,5,6};

    if (same_num(t_list))
        std::cout << \"same data\\n\";
    else if (different_num(t_list))
        std::cout << \"different data\\n\";
    else
        std::cout << \"other\\n\";
    return 0;
}

方法二:

循环遍历链表。。。

收藏 打印