gpt4 book ai didi

c++ - find_if 条件?

转载 作者:太空狗 更新时间:2023-10-29 23:41:03 28 4
gpt4 key购买 nike

如何检查 find_if 是否找到匹配项?当我尝试下面的代码时:

SparseMatrix& SparseMatrix::operator+=(const SparseMatrix &other)
{
vector<Node>::iterator itThis;
for (vector<Node>::const_iterator itOther = other._matrix.begin(); itOther != other._matrix.end(); ++itOther)
{
itThis = find_if(_matrix.begin(), _matrix.end(), position_finder(*itOther));

if(*itThis)
{
itThis->value += itOther->value;
} else
{
_matrix.push_back(*itOther);
}
}

return *this;
}

我得到 if(*itThis):

could not convert ‘itThis.__gnu_cxx::__normal_iterator<_Iterator, _Container>::operator* [with _Iterator = Node*, _Container = std::vector<Node>, __gnu_cxx::__normal_iterator<_Iterator, _Container>::reference = Node&]()’ from ‘Node’ to ‘bool’

我知道 itThis 是一个常量,所以我无法更改它的值,但我想知道是否存在匹配项。

最佳答案

find_if 将迭代器返回到容器中的元素或end(),参见reference

您可以将 itThis_matrix.end() 进行比较

if( itThis != _matrix.end())
{
}
else
{
}

关于c++ - find_if 条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14349910/

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