STL: partition

本文详细介绍了C++ STL中的三个分区算法:partition、stable_partition 和 partition_copy。这些算法能够将集合中的元素根据指定条件分为两个互不相交的子集,并保持元素的相对顺序不变。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

partition

Classifies elements in a range into two disjoint sets, with those elements satisfying a unary predicate preceding those that fail to satisfy it.

 
template<class BidirectionalIterator, class Predicate>
   BidirectionalIterator partition(
      BidirectionalIterator _First, 
      BidirectionalIterator _Last, 
      Predicate _Comp
   );

 

stable_partition

Classifies elements in a range into two disjoint sets, with those elements satisfying a unary predicate preceding those that fail to satisfy it, preserving the relative order of equivalent elements.

 
template<class BidirectionalIterator, class Predicate> 
   BidirectionalIterator stable_partition( 
      BidirectionalIterator _First,  
      BidirectionalIterator _Last, 
      Predicate _Pred 
   );

 

 partition_copy

Copies elements for which a condition is true to one destination, and for which the condition is false to another. The elements must come from a specified range.

template<class InputIterator, class OutputIterator1, class OutputIterator2, class Predicate>
    pair<OutputIterator1, OutputIterator2>
        partition_copy(
            InputIterator _First, 
            InputIterator _Last,
            OutputIterator1 _Dest1, 
            OutputIterator2 _Dest2, 
            Predicate _Pred
        );

 

转载于:https://www.cnblogs.com/freewater/archive/2013/03/11/2953520.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值