Standard Template Library

swapの特殊化

ユーザ定義型に対してswapを特殊化することは良くある.で,このやり方に2通り考えられる. std::swapを特殊化する(#1) その型と同じ名前空間でswapを定義する(#2) それぞれ,以下のようになる. namespace my_lib{ class X{ ..... }; void swap(X &x, X &y)…

Boost Iterator Adaptor + 標準algorithm

以下のようなmy_key_valというクラスがあるとします. struct my_key_val { my_key_val() : key(int()), val(double()) { } my_key_val(int key, double val = double()) : key(key), val(val) { } int key; double val; }; これをkeyについてソートしてvect…