【发布时间】:2010-12-04 06:37:16
【问题描述】:
我正在尝试使用以下代码从std::vector 中删除所有内容
vector.erase( vector.begin(), vector.end() );
但它不起作用。
更新:不清除破坏向量持有的元素吗?我不想这样,因为我还在使用这些对象,我只想清空容器
【问题讨论】:
-
clear() 在那里。你可以用它
-
更新没有澄清事情。向量元素究竟是什么?它们是指针还是对象?如果它们是对象,它们如何仍在使用中?为什么要清空向量?
-
1.什么不起作用? 2.难道你不知道指针和指针的区别吗?如果将指针存储在向量中,然后调用 clear() 它将破坏指针,而不是指针!
-
您的编辑似乎有点混乱。向量拥有存储在其中的对象。如果您从向量中移除对象,则副本将被销毁。这是不可避免的,他们无处可住。它们正被从存放它们的地方移走。如果您不希望这样,那么您就无法有意义地“清空容器”。
-
看到这个类似的问题:stackoverflow.com/questions/1514311/…