首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于list:erase的一个有关问题

2012-05-16 
关于list::erase的一个问题首先我声明了一个listint* LISTVAR然后我想用遍历的方法,删除其中满足删除条

关于list::erase的一个问题
首先我声明了一个
list<int*> LISTVAR

然后我想用遍历的方法,删除其中满足删除条件的元素。

我用的是list的erase的方法
请问采用这种方法,会释放原先元素所占的内存吗

[解决办法]
不好意思,看错了。应该是会释放的。因为list是类似于链表那样的,释放内存容易,效率高点呢。vector这样的用erase就不会立即释放内存。
[解决办法]
sgi list 代码:
iterator erase(iterator position) {
link_type next_node = link_type(position.node->next);
link_type prev_node = link_type(position.node->prev);
prev_node->next = next_node;
next_node->prev = prev_node;
destroy_node(position.node); //析构并释放内存 
return iterator(next_node);
}

热点排行