![]() |
1
286
清除标准容器的一个常见习惯用法是与空版本的容器交换:
这也是实际清除某些容器(std::vector)中存储的内存的唯一方法 |
![]() |
2
51
|
![]() |
3
32
该主题的作者问如何“有效地”清除队列,所以我认为他想要比线性队列更好的复杂性
O(队列大小)
. 提供服务的方法
David Rodriguez
,
anon
具有相同的复杂性:
|
![]() |
4
19
我使用下面的简单代码测量了性能,发现在C++03版本中进行交换比分配给空对象慢70-80%。然而,在C++11中,性能没有差别。不管怎么说,我会同意这个任务。
|
![]() |
5
13
在C++11中,可以通过以下操作清除队列:
|
![]() |
6
5
您可以创建一个从队列继承的类,并直接清除底层容器。这是非常有效的。
|
![]() |
7
3
假设你
这样,您就可以将一个空队列与
|
![]() |
8
2
因此,使用
|
![]() |
9
2
我这样做(使用C++14):
如果您有一个不想为其构建别名/typedef的非平凡队列类型,这种方法非常有用。不过,我总是会在这个用法上留下评论,向毫无戒心的/维护程序员解释,这并不疯狂,而是代替了实际使用
|
![]() |
10
1
使用
可能代码:
|
![]() |
11
1
另一种选择是使用简单的hack来获取底层容器
|
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |