boost的函数:is_partitioned

template <typename InputIterator, typename UnaryPredicate>
bool is_partitioned ( InputIterator first, InputIterator last, UnaryPredicate p )
{
//  Run through the part that satisfy the predicate
    for ( ; first != last; ++first )
        if ( !p (*first))
            break;
//  Now the part that does not satisfy the predicate
    for ( ; first != last; ++first )
        if ( p (*first))
            return false;
    return true;
}


功能描述:

容器区间内的元素是否以函数P进行划分;容器区间元素分为两部分,第一部分满足函数要求,第二部分不满足函数要求。


示例:

bool isOdd(int i) {return i % 2 == 1;}
bool lessThan10(int i){return i < 10;}

int myints[] = {0, 1, 2, 3, 14, 15};
vector<int> c(myints,  myints + sizeof(myints) / sizeof(int) );
is_partitioned ( c, isOdd ); //false
is_partitioned ( c, lessThan10 ); //true
is_partitioned ( c.begin (), c.end (), lessThan10 ); //true
is_partitioned ( c.begin (), c.begin () + 3, lessThan10 ); //true
is_partitioned ( c.end (), c.end (), isOdd ); //true:empty range


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值