使用向量0的大小删除结构向量的所有元素

时间:2015-01-22 08:48:05

标签: c++ vector

我有一个包含结构的向量,需要删除结构的数据成员,并且向量的大小变回0。

#include <vector>
#include <iostream>
using namespace std;

struct item{
unsigned int item_index;
unsigned int item_parent;
item(unsigned int index, unsigned int parent)
{
    item_index = index;
    item_parent   = parent;
}
};

class container{
std::vector<item>obj;
public:
container()
    {
      obj.push_back(item(25,2));
      obj.push_back(item(3,4));          
    }

void display()
{
    cout<<" before "<<obj[0].item_index<<endl;
    obj.clear();                               //obj.resize(0);
    cout<<" after "<<obj[0].item_index<<endl;
}
};

int main()
{
container* cont = new container();
cont->display();
return 0;
}

输出在25之后的25之前。我也尝试调整整个矢量的大小 用0作为向量的新大小。这也产生了相同的输出。如何将向量的大小更改为0?

1 个答案:

答案 0 :(得分:1)

尝试在清除之前和之后打印obj.size()。你将得到2然后是0.这意味着向量被清除。你再次获得25的原因是它仍然留在记忆中