gpt4 book ai didi

c++ - 运算符 "!="不匹配(c++ 迭代器)

转载 作者:行者123 更新时间:2023-11-30 01:39:09 26 4
gpt4 key购买 nike

程序应该是在 vector 中进行二分查找。最后它打印找到的元素。我的代码是:

#include <iostream>
#include <string>
#include <vector>

using namespace std;

int main()
{
vector<string> s{"a","b","c"};

auto beg=s.begin(), end=s.end(), mid=s.begin()+(end-beg)/2;
auto sought='c';

while(*mid!=sought && mid!=end)
{
if(*mid>sought)
end=mid;

else
beg=mid+1;

mid=beg+(end-beg)/2;
}

cout<<(*mid)<<endl;
return 0;
}

它表示错误是运算符 != 在 (*mid!=sought && mid!=end) 处没有匹配项。如果我尝试在一个简单的字符串而不是一个 vector 上做它,它就可以工作。

最佳答案

'c' 的类型是char*mid 的类型是std::stringoperator!= 未在 charstd::string 之间定义。

您可以将seought 更改为:

auto sought = "c"; // C-style string

或者:

using namespace std::literals;
auto sought = "c"s; // `std::string`

关于c++ - 运算符 "!="不匹配(c++ 迭代器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46329550/

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