remove_if函数

remove_if函数


2024年5月4日发(作者:)

remove_if函数

remove_if函数是C++中的标准库函数,用于删除容器中满足特定条件的元素。

它接受两个迭代器作为参数,第一个迭代器指向容器的起始位置,第二个迭代器

指向容器的结束位置。同时,它还接受一个谓词(predicate)函数作为参数,

该函数将用于确定哪些元素应被删除。

remove_if函数的基本实现过程如下:

1. 使用提供的谓词函数确定需要保留的元素,并将它们移动到容器的前面。

2. 返回一个指针,它指向最后一个保留的元素之后的位置。

3. 调用容器的erase函数删除返回的指针到end之间的所有元素。

以下是一个使用remove_if函数删除vector中的所有奇数元素的示例代码:

c++

#include

#include

#include

using namespace std;

bool is_odd(int i) {

return (i % 2 == 1);

}

int main() {

vector v = {1, 2, 3, 4, 5, 6};

auto end = remove_if((), (), is_odd);

(end, ());

for (int i : v) {

cout << i << " ";

}

return 0;

}

输出结果为:

2 4 6

在这个示例中,我们使用is_odd函数作为谓词函数来确定需要删除的元素。首

先,我们调用remove_if函数,将所有奇数元素移动到容器的前面,并返回一

个指向最后一个偶数元素之后位置的指针。接着,我们调用vector的erase函

数,删除这些元素。 最后,我们打印出剩余的元素,即2、4和6。


发布者:admin,转转请注明出处:http://www.yc00.com/web/1714768624a2511970.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信