小编Slo*_*out的帖子

Java LinkedList在迭代时最安全的删除方式

我记得有一段时间(我认为这是一本Java书),在迭代集合时删除元素的最安全的方法是使用iterator.remove.

 while(iterator.hasNext())
 {
    if(it.next().condition())
      iterator.remove();
 }
Run Code Online (Sandbox Code Playgroud)

由于我找不到那个参考并需要相对快速的确认,有些java老手可以证实这一点吗?

java collections iterator

4
推荐指数
1
解决办法
324
查看次数

C++析构函数 - 继承上下文中的显式调用

我不确定我的问题是多么相关,但在这里.

我知道我们应该只在堆上分配内存时显式调用析构函数.

所以我们假设我们有两个类:Animal和Dog,它是Animal的一个子类.

    Animal a* = new Dog();
    //-------Do something here-----//
    a -> ~Animal();
Run Code Online (Sandbox Code Playgroud)

再次,让我们说动物包含几个动态分配的字段,并且Dog类添加了几个动态分配的字段.

因为Dog有更多的字段,所以调用Animal析构函数会导致内存泄漏.这只是糟糕的编程风格还是我们可以得到一个解决方法?

我想我们需要将指针转换为Dog类型,然后调用析构函数,但我无法找到有关如何正确执行此操作的任何参考.

c++ memory destructor

0
推荐指数
1
解决办法
49
查看次数

标签 统计

c++ ×1

collections ×1

destructor ×1

iterator ×1

java ×1

memory ×1