我有一个包含结构的向量,需要删除结构的数据成员,并且向量的大小变回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?
答案 0 :(得分:1)
尝试在清除之前和之后打印obj.size()
。你将得到2然后是0.这意味着向量被清除。你再次获得25的原因是它仍然留在记忆中