std::swap、std::max、std::min
http://www.geocities.jp/ky_webid/cpp/library/034.html
補助的な関数です。
std::swap関数
値の入れ替えをするだけの関数です。
#include <iostream> #include <algorithm> using std::cout; using std::endl; int main () { int a = 10; int b = 20; cout << "a = " << a << endl; cout << "b = " << b << endl; std::swap(a,b); cout << "a = " << a << endl; cout << "b = " << b << endl; return 0; }
$ main a = 10 b = 20 a = 20 b = 10
std::max関数
渡された二つの値から大きい方の値を返します。
#include <iostream> #include <algorithm> using std::cout; using std::endl; int main () { int a = 10; int b = 20; int result = std::max(a,b); cout << result << endl; return 0; }
$ main 20
また、第三引数に関数ポインタ(及び関数オブジェクト)を渡せば独自に比較処理を通すこともできます。
#include <iostream> #include <algorithm> using std::cout; using std::endl; bool comp_ptr (int* a, int* b) { return *a < *b; } int main () { int a = 10; int b = 20; // ポインタで渡した場合の処理 int* result = std::max(&a,&b,comp_ptr); cout << *result << endl; return 0; }
$ main 20
std::min関数
渡された二つの値から小さい方の値を返します。
使い方はstd::maxとまったく同じです。
ちなみにstd::maxとstd::minはVC6.0には存在しないそうです。注意が必要ですね。