std::mismatch
![]() |
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 InputIt1, class InputIt2 > std::pair<InputIt1,InputIt2> |
(1) | |
template< class InputIt1, class InputIt2, class BinaryPredicate > std::pair<InputIt1,InputIt2> |
(2) | |
[first1, last1)
と別のfirst2
始まるによって定義された1:2の範囲からの要素の最初のミスマッチのペアを返します。関数の最初のバージョンは要素を比較するoperator==
使用して、2番目のバージョンは、指定されたバイナリ述語p
を使用しています. [first1, last1)
and another starting at first2
. The first version of the function uses operator==
to compare the elements, the second version uses the given binary predicate p
. You can help to correct and verify the translation. Click here for instructions.
目次 |
[編集] パラメータ
first1, last1 | - | 最初の要素の範囲
Original: the first range of the elements The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
first2 | - | 要素の第2の範囲の始まり
Original: the beginning of the second range of the elements The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
p | - | binary predicate which returns true if the elements should be treated as equal. The signature of the predicate function should be equivalent to the following: bool pred(const Type1 &a, const Type2 &b); The signature does not need to have const &, but the function must not modify the objects passed to it. |
Type requirements | ||
-InputIt1 must meet the requirements of InputIterator .
| ||
-InputIt2 must meet the requirements of InputIterator .
| ||
-OutputIt must meet the requirements of OutputIterator .
|
[編集] 値を返します
last1
第2レンジから対応するイテレータと対.last1
and the corresponding iterator from the second range.You can help to correct and verify the translation. Click here for instructions.
[編集] 複雑
last1
- 述語のfirst1
アプリケーションlast1
- first1
applications of the predicateYou can help to correct and verify the translation. Click here for instructions.
[編集] 可能な実装
First version |
---|
template<class InputIt1, class InputIt2> std::pair<InputIt1, InputIt2> mismatch(InputIt1 first1, InputIt1 last1, InputIt2 first2) { while (first1 != last1 && *first1 == *first2) { ++first1, ++first2; } return std::make_pair(first1, first2); } |
Second version |
template<class InputIt1, class InputIt2, class BinaryPredicate> std::pair<InputIt1, InputIt2> mismatch(InputIt1 first1, InputIt1 last1, InputIt2 first2, BinaryPredicate p) { while (first1 != last1 && p(*first1, *first2)) { ++first1, ++first2; } return std::make_pair(first1, first2); } |
[編集] 例
You can help to correct and verify the translation. Click here for instructions.
#include <iostream> #include <string> #include <algorithm> std::string mirror_ends(const std::string& in) { return std::string(in.begin(), std::mismatch(in.begin(), in.end(), in.rbegin()).first); } int main() { std::cout << mirror_ends("abXYZba") << '\n' << mirror_ends("abca") << '\n' << mirror_ends("aba") << '\n'; }
Output:
ab a aba
[編集] も参照してください
要素の2セットが同じかどうかを判断します Original: determines if two sets of elements are the same The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (関数テンプレート) | |
(C++11) |
特定の条件を満たす最初の要素を検索します Original: finds the first element satisfying specific criteria The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (関数テンプレート) |
1範囲が別のより辞書式に小さい場合はtrueを返します Original: returns true if one range is lexicographically less than another The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (関数テンプレート) | |
searches for a range of elements (関数テンプレート) |