如何在不破坏其元素的情况下清空列表?

时间:2016-05-12 01:21:42

标签: c++

我有一个点列表,而不是点指针,我需要清空而不破坏元素。这就是我要做的事情:我遍历clipped中的所有点,如果它们符合某个条件,我会将它们添加到temp。如果他们不这样做,我可能会或可能不会做一些函数来生成另一个点,然后将其添加到temp。在处理clipped中的所有点之后,我清空clipped,将temp中的元素添加到其中,然后再次执行循环,共计4次。我的问题是:如何清空clipped而不影响temp中的点数?如果我只是clipped->clear() 这些点甚至会被破坏吗?这个函数会被多次调用,所以如果我只是做clipped = new std::list<point>(),我最终会出现内存泄漏/堆栈溢出吗?

Point是一个包含3个整数的结构:x,y和z;

1 个答案:

答案 0 :(得分:3)

std::list<point>添加一个点会生成副本。所以是的,清除clipped会破坏它的点数,它不会破坏你在temp中保存的副本。您可以按计划完成。