1. 程式人生 > >判斷list中的元素是否完全相同或完全不相同

判斷list中的元素是否完全相同或完全不相同

判斷一個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;
}

方法二:

迴圈遍歷連結串列。。。