![]() |
1
34
|
![]() |
2
7
STL列表有一个有趣的特性:
下面是一个示例,说明如何使用
|
![]() |
3
4
解决方案1
这个想法很简单。你想做的是
去除
一个容器中的元素,如果谓词为真,则将它们放在另一个容器中。所以,取
注意,因为我们使用
解决方案2
第二种方法使用STL来实现算法。我个人认为它比第一个解决方案更具可读性,但它有两个缺点:第一,它要求输入容器使用更强大的双向迭代器,而不是我们在第一个解决方案中使用的前向迭代器。第二,这对您来说可能是一个问题,也可能不是一个问题,这些容器不能保证在调用之前具有相同的顺序。
任何一种方法:调用函数
最后备注
在编写代码时,我遇到了一个难题:应该
|
![]() |
4
1
注意,partition()为您提供了足够的区分匹配对象和不匹配对象的能力。 (然而,list::splice()很便宜) 请参阅以下代码,了解从 Now to remove elements that match a predicate?
|
![]() |
5
0
另一次尝试:
|
![]() |
6
0
|
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |