gpt4 book ai didi

C++如何检查 vector 的内容是否存在于另一个 vector 中?

转载 作者:行者123 更新时间:2023-11-27 23:47:30 32 4
gpt4 key购买 nike

我正在尝试编写一个程序来检查一个 vector 的内容是否存在于另一个 vector 中。例如:

vector<int> a = {1, 2};
vector<int> b = {6, 5, 3, 1, 9, 2};

当比较这两个 vector 时,这将返回 true,因为 a 的内容存在于 b 的某处。

vector<int> a = {1, 2}
vector<int> b = {3, 1, 5, 6}

这将返回 false,因为 a 中的所有内容 不存在于 b 中。

我尝试过使用 while 循环,但我对如何中断循环感到困惑。

bool check_vec(vector<int> a, vector<int> b){

int checker = 0;

int i = 0;
int q = 0;

while ( true ) {
if(b.at(i) == a.at(q)) {
checker++;
i = 0;
q++;
if(checker == a.size())
return true;

i++;

}
}
}

最佳答案

使用循环遍历第一个 vector 的内容。您不需要第二个 vector 的循环,只需使用 std::find

for (auto a_elt: a) {
if (std::find(b.begin(), b.end(), a_elt) == b.end()) {
return false;
}
}
return true;

您还可以使用 std::all_of :

return std::all_of(a.begin(), a.end(), [](int a_elt) {
return std::find(b.begin(), b.end(), a_elt) != b.end();
});

关于C++如何检查 vector 的内容是否存在于另一个 vector 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49441588/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com