关于vector的问题

假如我定义了一个vector<int> a这样一个向量,我用push_back相继赋值之后,我又需要在程序完全结束之前重新定义a里面的所有内容,即好比a里面什么都没有,并且还能用push_back给a赋值。
我把a申明为vector的目的是a的长度不知道,是由用户的操作而决定。

作者: gg513482543   发布时间: 2011-06-13

不太明白楼主的问题内容。

如果想做到“我又需要在程序完全结束之前重新定义a里面的所有内容,即好比a里面什么都没有,并且还能用push_back给a赋值。”这个很容易,把a里面的内容全部删除就好了,如下:
C/C++ code

a.erase(a.begin(), a.end());



参考这个链接:
http://www.cplusplus.com/reference/stl/vector/erase/

作者: pathuang68   发布时间: 2011-06-13

C/C++ code

vector< int > a;
....
a.push_back( 10 );
.......
a.clear( );      //清除a中所有元素
.........
a.push_back( 20 );
......

作者: supermegaboy   发布时间: 2011-06-13

我想对a的操作实际等效于销毁它,然后又重新用push_back给a赋值,问题就是用什么销毁向量a呢?

作者: gg513482543   发布时间: 2011-06-13

引用 3 楼 gg513482543 的回复:

我想对a的操作实际等效于销毁它,然后又重新用push_back给a赋值,问题就是用什么销毁向量a呢?

我觉得程序员没必要去处理容器里的东西 特指程序完全结束之前重新定义a里面的所有内容

作者: c_losed   发布时间: 2011-06-13

买了一把刀,先切了肉,然后想切菜,非要把刀扔了,重新买一把刀?!!

洗洗就行了嘛!!想啥呢!

作者: coding_hello   发布时间: 2011-06-13

主要是我的程序涉及这个,它需要根据的操作来做;当输入a中的内容有错时,需要把a销毁然后再重新给a赋值
难道就没有能使a销毁的函数了吗????

作者: gg513482543   发布时间: 2011-06-13

引用 6 楼 gg513482543 的回复:

主要是我的程序涉及这个,它需要根据的操作来做;当输入a中的内容有错时,需要把a销毁然后再重新给a赋值
难道就没有能使a销毁的函数了吗????

1楼可以解决你说的问题。。。
也可以用判断条件来进行eraser某个元素

作者: c_losed   发布时间: 2011-06-13

但就是用了1楼那种做法之后,当执行到a.erase(a.begin(),a.end())时会提示出错:
Expression:vector subscript out of range

作者: gg513482543   发布时间: 2011-06-13

引用 6 楼 gg513482543 的回复:
主要是我的程序涉及这个,它需要根据的操作来做;当输入a中的内容有错时,需要把a销毁然后再重新给a赋值
难道就没有能使a销毁的函数了吗????


a.clear( )就是清除了a的内容了。

作者: supermegaboy   发布时间: 2011-06-13