c++ - 如何查找只包含某个字段而没有其他字段的列表?

标签 c++

如何查找只包含某个字段而没有其他字段的列表? 例如:

[a, b, c, d]
[a, b, c]
[a, b]

查找仅包含a和b的列表:[a, b]

最佳答案

这里我已经实现了你所需要的。 输入是二维 vector ,其中包含您提到的三个列表的输入。 check vector 包含您要检查输入中是否存在的列表。

#include<iostream>
#include<vector>
#include<algorithm>

using namespace std;

int main() {
    vector<vector<char>> input = {
        {'a', 'b', 'c', 'd'},
        {'a', 'b', 'c'},
        {'a', 'b'}
    };
    bool broke = false;
    vector<char> check = {'a', 'b'};
    sort(check.begin(), check.end());
    for(int j=0; j<input.size(); ++j){
        auto x = input[j];
        if(x.size()!=check.size())continue;
        sort(x.begin(), x.end());
        for(int i=0; i<min(x.size(),check.size()); ++i){
            if(check[i]!=x[i]){
                broke = true;
                break;
            }
        }
        if(!broke){
            cout<<j+1<<" number list is equal to required list\n";
        }
        broke = false;
    }
    return 0;
}

此代码接受动态输入,因此您可以尝试输入并检查值以理解代码。我已经实现了 Cwift 在之前的回答中建议的方法。

关于c++ - 如何查找只包含某个字段而没有其他字段的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69218470/

相关文章:

c++ - 矩阵加法 : Ambiguous overload for ‘operator+’

c++ - 我如何使用 OpenCV 重写这个 warp-affine?

c++ - 如何调试Windows事件对象是否设置?

c++ - 为什么 map<string, string> 接受整数作为值?

c++ - 如何总结 std::set 的元素

c++ - CMake -- 将子目录中的所有源添加到 cmake 项目

c++ - 变量可以同时声明为静态和外部吗?

c++ - cout 一个 stringstream 但打印一个指针

c++ - 在 32 位环境中链接到 32 位共享目标文件会产生 ELFCLASS64 错误

c++ - 哈夫曼树的存储与重建