gpt4 book ai didi

c++ - find_if 找到一个不等于某物的元素

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:21:57 25 4
gpt4 key购买 nike

#include<iostream>
#include<algorithm>

using namespace std;

int main()
{
int matrix[9] = { 1,0,0,0,1,0,0,0,5 };
bool status = true;

status = find_if(begin(matrix), end(matrix), [](auto const &value) ->bool
{ if (value != 0 && value != 1) return false; else return true; });

cout << status << endl;

}

我遇到这样一种情况,我需要查找数组中是否存在不等于 10 的值。我想到了使用 find_if。但我无法让它发挥作用。

此代码始终返回 true。我该如何做对?如果数组中至少有一个元素是非 1 和 0,则最终状态应为 false

find_if 方法是否正确?

最佳答案

std::find_if返回一个迭代器,而不是一个 bool。在您的情况下,迭代器是一个指针,它永远不应为空,因此将始终隐式转换为 true

您正在寻找 std::any_of .

关于c++ - find_if 找到一个不等于某物的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40722308/

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