C++用迭代器实现二分搜索

问题遇到的现象和发生背景 二分搜索报错
遇到的现象和发生背景,请写出第一个错误信息
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
#include
#include
using namespace std;
int main()
{
    string a("ABCDEFG") ;
    string k="B";
    auto i=a.begin(),j=a.end();
    auto m=a.begin()+(j-i)/2;
    while(m!=j&&*m!=k){
        if(k<*m)
            j=m;
        else
            i=m+1;
        m=i+(j-i)/2;
    }
    if(*m==k)
        cout<else
        cout<<"Not founded!"<
运行结果及详细报错内容 从第10行开始报错
我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60% 照着《Primer C++》写的用迭代器实现二分搜索,不知道为什么报错了几百行
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”
  • 首先 K是个字符串,*m 是个char类型,把 k 定义成一个 char类型就行了
  • cout 要输出 *m, 不支持 输出 m,

参考如下:

#include<iostream>
#include<string>

using namespace std;

int main()
{
    string a("ABCDEFG") ;
    char k= 'B';
    auto i=a.begin(),j=a.end();
    auto m=a.begin()+(j-i)/2;
    while(m!=j&&*m!=k){
        if(k<*m)
            j=m;
        else
            i=m+1;
        m=i+(j-i)/2;
    }
    if(*m==k)
        cout << *m << endl;
    else
        cout<<"Not founded!"<<endl;
    return 0;
}

如有帮助,欢迎点赞+采纳哈!