vs2010 c++ 使用 vector debug模式下出错, release下没错,为什么?

2025-03-19 02:08:28
推荐回答(1个)
回答1:

感觉主要有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[])
{
     vector vb;
     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;
}