当前位置:  开发笔记 > 编程语言 > 正文

单个语句方法从容器中删除元素

如何解决《单个语句方法从容器中删除元素》经验,为你挑选了2个好方法。

是否有一个算法可以从容器中删除元素,如下面的代码所示?

vec_it = std::remove_if( vec.begin(), vec.end(), pred );
vec.erase( vec_it, vec.end() );

Cyrille Ka.. 6

这样做的惯用方法就像jalf所说的那样.您可以构建自己的函数来更轻松地执行此操作:

template void erase_if(T &vec, Pred pred)
{
    vec.erase(std::remove_if(vec.begin(), vec.end(), pred), vec.end());
}

所以你可以使用

std::vector myVec;
// (...) fill the vector. (...)
erase_if(myVec, myPred);


jalf.. 5

你的意思是这样的?

vec.erase( std::remove_if( vec.begin(), vec.end(), pred ), vec.end() );

这是实现它的惯用方法.



1> Cyrille Ka..:

这样做的惯用方法就像jalf所说的那样.您可以构建自己的函数来更轻松地执行此操作:

template void erase_if(T &vec, Pred pred)
{
    vec.erase(std::remove_if(vec.begin(), vec.end(), pred), vec.end());
}

所以你可以使用

std::vector myVec;
// (...) fill the vector. (...)
erase_if(myVec, myPred);



2> jalf..:

你的意思是这样的?

vec.erase( std::remove_if( vec.begin(), vec.end(), pred ), vec.end() );

这是实现它的惯用方法.

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有