std::partition_copy
提供: cppreference.com
![]() | このページは、Google 翻訳を使って英語版から機械翻訳されました。 翻訳には誤りや奇妙な言い回しがあるかもしれません。文章の上にポインタをおくと、元の文章が見れます。誤りを修正して翻訳を改善する手助けをしてください。翻訳についての説明は、ここをクリックしてください。 |
Defined in header <algorithm> | ||
template<class InputIt, class OutputIt1, class OutputIt2, class UnaryPredicate > | (C++11およびそれ以降) | |
p
でレンジ[first, last)
から範囲の先頭に述語d_first_true
を満たす要素をコピーし、p
でレンジ先頭にd_first_false
を満たさない要素がコピーされます.Original:
Copies the elements that satisfy the predicate
p
from the range [first, last)
to the range beginning at d_first_true
, and copies the elements that do not satisfy p
to the range beginning at d_first_false
.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
目次 |
[編集]パラメータ
first, last | - | ソートする要素の範囲 Original: the range of elements to sort The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
d_first_true | - | pを満たす要素の出力範囲の始まり Original: the beginning of the output range for the elements that satisfy p The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
d_first_false | - | pを満たさない要素の出力範囲の始まり Original: the beginning of the output range for the elements that do not satisfy p The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
p | - | unary predicate which returns true 要素がd_first_trueに配置する必要があるかどうか . Original: if the element should be placed in d_first_true The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. The signature of the predicate function should be equivalent to the following: bool pred(const Type &a); The signature does not need to have const&, but the function must not modify the objects passed to it. |
型の要件 | ||
-InputIt は InputIterator の要求を満足しなければなりません。 | ||
-OutputIt1 は OutputIterator の要求を満足しなければなりません。 | ||
-OutputIt2 は OutputIterator の要求を満足しなければなりません。 |
[編集]値を返します
イテレータからpair範囲と
d_first_true
範囲の末尾を指すイテレータの最後に構築d_first_false
.Original:
A pair constructed from the iterator to the end of the
d_first_true
range and the iterator to the end of the d_first_false
range.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[編集]複雑性
distance(first, last)
の正確p
アプリケーション.Original:
Exactly
distance(first, last)
applications of p
.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[編集]可能な実装
template<class InputIt, class OutputIt1, class OutputIt2, class UnaryPredicate>std::pair<OutputIt1, OutputIt2> partition_copy(InputIt first, InputIt last, OutputIt1 d_first_true, OutputIt2 d_first_false, UnaryPredicate p){while(first != last){if(p(*first)){*d_first_true =*first;++d_first_true;}else{*d_first_false =*first;++d_first_false;}++first;}returnstd::pair<OutputIt1, OutputIt2>(d_first_true, d_first_false);} |
[編集]例
このコードを実行します
#include <iostream>#include <algorithm>#include <utility> int main(){int arr [10]={1,2,3,4,5,6,7,8,9,10};int true_arr [5]={0};int false_arr [5]={0}; std::partition_copy(std::begin(arr), std::end(arr), std::begin(true_arr),std::begin(false_arr), [](int i){return i >5;}); std::cout<<"true_arr: ";for(auto it =std::begin(true_arr); it !=std::end(true_arr);++it){std::cout<<*it <<' ';}std::cout<<'\n'; std::cout<<"false_arr: ";for(auto it =std::begin(false_arr); it !=std::end(false_arr);++it){std::cout<<*it <<' ';}std::cout<<'\n'; return0; }
出力:
true_arr: 6 7 8 9 10 false_arr: 1 2 3 4 5
[編集]参照
二つのグループに要素の範囲を分割します Original: divides a range of elements into two groups The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (関数テンプレート) | |
それらの相対的な順序を維持しながら、二つのグループに要素を分割します Original: divides elements into two groups while preserving their relative order The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (関数テンプレート) |