64,682
社区成员
发帖
与我相关
我的任务
分享
for(int i = 1; i <= 10; ++i)
text.push_back(i);
这种方法效率比较低,也不容易处理数据不连续的情况
2. 从数组中初始化
int arr[] = {1,2,3,4,5,6,7,8,9,10};
vector<int> text(arr, arr + sizeof(arr)/sizeof(int));
直观,而且可以通过直接修改数组来修改vector。效率也比较高,不过浪费一个临时变量空间
3. 使用boost库
#include <boost/assign.hpp>
int main(){
using namespace boost::assign;
vector<int> text;
text += 1,2,3,4,5,6,7,8,9,10;
}
直观且方便修改,效率也高,也不用浪费临时变量空间。不过需要用到boost库
#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;
}
错误信息
1>c:\users\kx\documents\visual studio 2012\projects\primer3-4\primer3-4\primer3-4.cpp(7): error C2601: “text”: 本地函数定义是非法的