我正在尝试编写C ++程序而我正在尝试使用find_if函数。
这就是我所拥有的:
这是我得到的错误:
我的理解是find_if返回的迭代器与我声明的迭代器不同。但是,我阅读了find_if here的C ++文档,据此,我正确地执行了此操作。
答案 0 :(得分:0)
请注意SELECT text
FROM [Test].[dbo].[myTable]
WHERE freetext (Text , 'FORMSOF(INFLECTIONAL, "name")')
是data
,这意味着当您致电const vector<CDCRecord>&
和data.begin()
时,您将返回data.end()
而不是vector<CDCRecord>::const_iterator
1}}秒。因此,当您尝试将vector<CDCRecord>::iterator
的结果分配给常规旧find_if
时,这是类型错误,因为返回类型为iterator
。
要解决此问题,请将迭代器const_iterator
的类型显式更改为it
,或者只使用const_iterator
并让编译器为您解决。