find_if错误:迭代器没有可行的转换

时间:2017-11-05 23:55:18

标签: c++

我正在尝试编写C ++程序而我正在尝试使用find_if函数。

这就是我所拥有的:

enter image description here

这是我得到的错误:

enter image description here

我的理解是find_if返回的迭代器与我声明的迭代器不同。但是,我阅读了find_if here的C ++文档,据此,我正确地执行了此操作。

1 个答案:

答案 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并让编译器为您解决。