如何查找只包含某个字段而没有其他字段的列表? 例如:
[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/