std::partition_point
来自cppreference.com
|
|
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
| Defined in header <algorithm>
|
||
| template< class ForwardIt, class UnaryPredicate > ForwardIt partition_point( ForwardIt first, ForwardIt last, UnaryPredicate p); |
(1) | (C++11 起) |
查看分区(如果std::partition)范围内
[first, last)和定位的第一个分区的结束,也就是不符合的第一个元素p或last如果最后,如果所有的元素满足p.Original:
Examines the partitioned (as if by std::partition) range
[first, last) and locates the end of the first partition, that is, the first element that does not satisfy p or last if last if all elements satisfy 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.
目录 |
[编辑] 参数
| first, last | - | 分区检查的元素
Original: the partitioned range of elements to examine 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 发现在起始范围元素 . Original: for the elements found in the beginning of the range 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:
The signature does not need to have const &, but the function must not modify the objects passed to it. | |||||||||
| Type requirements | |||||||||||
-ForwardIt must meet the requirements of ForwardIterator.
| |||||||||||
[编辑] 返回值
过去的迭代器
[first, last)或last的第一个分区内所有元素是否满足p.Original:
The iterator past the end of the first partition within
[first, last) or last if all elements satisfy 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.
[编辑] 复杂性
first和last之间的距离在对数Original:
Logarithmic in the distance between
first and lastThe 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.
[编辑] 为例
#include <algorithm> #include <array> #include <iostream> #include <iterator> int main() { std::array<int, 9> v = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; auto is_even = [](int i){ return i % 2 == 0; }; std::partition(v.begin(), v.end(), is_even); auto p = std::partition_point(v.begin(), v.end(), is_even); std::cout << "Before partition:\n "; std::copy(v.begin(), p, std::ostream_iterator<int>(std::cout, " ")); std::cout << "\nAfter partition:\n "; std::copy(p, v.end(), std::ostream_iterator<int>(std::cout, " ")); }
Output:
Before partition:
8 2 6 4
After partition:
5 3 7 1 9[编辑] 另请参阅
| (C++11) |
检查范围是否按升序排列 Original: checks whether a range is sorted into ascending order The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (函数模板) |