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