vector初始化不正确,不知此处应如何修改
#include <iostream>
#include <vector>
using namespace std;
int main(){
vector<int> text{1,2,3,4,5,6,7,8,9,10};
int sought;
cout << "What number are you seeking? " << endl;
cin >> sought;
auto beg = text.begin(), end = text.end();
auto mid = text.begin() + (end-beg)/2;
while (mid != end && *mid != sought)
{
if (sought < *mid){
end = mid;
}else{
beg = mid + 1;
}
mid = beg = (end - beg)/2;
}
return 0;
}
[解决办法]
vector是没有类似数组的直接初始化方法的。常用的初始化方法有三种:
1. for循环
for(int i = 1; i <= 10; ++i)
text.push_back(i);
int arr[] = {1,2,3,4,5,6,7,8,9,10};
vector<int> text(arr, arr + sizeof(arr)/sizeof(int));
#include <boost/assign.hpp>
int main(){
using namespace boost::assign;
vector<int> text;
text += 1,2,3,4,5,6,7,8,9,10;
}