std::equal_to|C++|STL
std::equal_to の覚書
C++日本語リファレンスによると下記の通り↓
メンバ変数を持たず、状態を保持しないとのこと。
equal_toクラスは、等値比較を行う関数オブジェクトである。*1
equal_to< 型 >()( left, right ); で、指定した型による left == right の比較が行われ、
bool 値( 0 / 1 )が返ってくる様です。
#include <bits/stdc++.h> using namespace std; int main() { //int for( int i = 0; i < 3; i++ ) { cout << i << ":" << equal_to<int>()( i, 2 ) << endl; } cout << endl; //string vector<string> vc{ "NO","YES","NO" }; for( int i = 0; i < 3; i++ ) { cout << i << ":" << equal_to<string>()( vc[ i ], "YES" ) << endl; } return 0; }
#include <bits/stdc++.h> using namespace std; int main() { //int auto f = [ = ]( int x ){ return x == 2; }; for( int i = 0; i < 5; i++ ) { cout << i << ":" << f( i ) << endl; } cout << endl; //string vector<string> vc{ "NO","YES","NO" }; auto f2 = [ = ]( string x ){ return x == "YES"; }; for( int i = 0; i < 3; i++ ) { cout << i << ":" << f2( vc[ i ] ) << endl; } return 0; }
ラムダでも同じ感じで書けました◎
(単にラムダを書く練習です...)
std::equal_to の使い所はまだ思い浮かばないのですけど、
使うとしたら、std::all_of *2 との合わせ技で使う例を見たので、
vector 等に入った要素の比較判定とかで使えそうではあります。