帮忙看一段关于迭代器的代码

#include "iostream"
#include "vector"
using namespace std;

int main()
{
vector text = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
vector sought;
int i;
cin >> i;
sought.push_back(i);
auto begin = text.begin(), end = text.end();
auto mid = text.begin() + (end - begin) / 2;
while (mid!=end && *mid != sought)
{
if(*mid > sought)
end = mid;
else
begin = mid + 1;
mid = begin + (end - begin) / 2;
}
}

什么问题,能说下么?

就是编译不通过 if(*mid > sought) while (mid!=end && *mid != sought)我用的是VS2013但是一直编译不通过