備忘録

プログラムやゲーム関連に関すること

【C++】否定を実行する関数オブジェクト

int 値の否定

int n = 1;
std::cout << std::negate<int>()(n) << std::endl; // -1

int i[] = {1, -2, 3, -4};
std::transform(std::begin(i), std::end(i), i, std::negate<int>());
std::for_each(std::begin(i), std::end(i),
 [](int x){ std::cout << x << std::endl; }); // -1, 2, -3, 4

std::array<int, 4> ar = {1, -2, 3, -4};
std::for_each(ar.cbegin(), ar.cend(),
 [](int x){ std::cout << std::negate<int>()(x) << std::endl; }); // -1, 2, -3, 4

// 使用には、#include <functional> が必要になる