感觉主要有2个问题:
(1)vector是要给出它里面存储数据的类型的。也就是说,不能直接用vector声明变量,应该是vector
(2)assign的用法问题
assign函数主要有以下两种形式:
assign(vector.begin(), vector.end());// 拷贝整个vector
assign(int count, const T t);//用某一类型 t填充该vecotr,size = count
没见你的这种分配方式。
为了保险起见,还是改成for循环
修改如下:
int _tmain(int argc, _TCHAR* argv[])
{
vectorvb;
unsigned char bt[20]= {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
for(int i=0; i<20; i++)
{
vb.push_back(bt[i]+20);
}
vector::iterator it = vb.begin();
it += 10;
vector::iterator it4 = it + 5;
vector::iterator it2 = vb.erase(it, it4);
printf("vb %d \n", vb.size());
printf("%d ", *it2);
getchar();
return 0;
}