c**********e 发帖数: 2007 | 1 vector x;
x.reserve(3);
x[0]=10; x[1]=20; x[2]=30;
x.reserve(10);
for(int i=0;i<3;i++) { cout << x[i] << endl; }
向量开始是3,长度不够,我们增加到10.但是增加后原来赋的值被冲了。有没有办法保
留原来的值? 必须用另一个vector吗? | t****t 发帖数: 6806 | 2 you reserved space, but the size is still 0. it's invalid to assign directly
to [0], [1], [2].
【在 c**********e 的大作中提到】 : vector x; : x.reserve(3); : x[0]=10; x[1]=20; x[2]=30; : x.reserve(10); : for(int i=0;i<3;i++) { cout << x[i] << endl; } : 向量开始是3,长度不够,我们增加到10.但是增加后原来赋的值被冲了。有没有办法保 : 留原来的值? 必须用另一个vector吗?
| c**********e 发帖数: 2007 | 3 Thank you. This is very interesting. I use push_back, then reserving more
space does not wash out old data.
directly
【在 t****t 的大作中提到】 : you reserved space, but the size is still 0. it's invalid to assign directly : to [0], [1], [2].
|
|