とくにあぶなくないRiSKのブログ

危ないRiSKのブログだったかもしれない。本当はRiSKだけどググラビリティとか取得できるIDの都合でsscriskも使ったり。

std::not2

STL―標準テンプレートライブラリによるC++プログラミング 第2版
>= を not2 で < にして,sort してる。

// P204 ex11-01.cpp
#include<functional>
class U : public std::binary_function<U, U, bool>{
public:
 int id;
 bool operator()(const U& x, const U& y)const{
  return x.id >= y.id;
 }
};
#include<vector>
#include<algorithm>
#include<cassert>
#include<iostream>
int main(){
 std::vector<U> v(1000);
 for(int i = 0; i != 1000; ++i)v[i].id = 1000 - i - 1;
 std::sort(v.begin(), v.end(), std::not2(U()));
 for(int i = 0; i != 1000; ++i)assert(v[i].id == i);
 std::cout << " --- Ok." << std::endl;
}