1. 说明
异或的函数对象类。
可用作 transform
或者 accumulate
等的操作符。
类似的还有与操作bit_and
、或操作 bit_or
。
2. 头文件
#include <functional>
3. 例子:对一个数组逐个进行异或操作
比如常见的问题:一个数组里只有1个数出现1次,其他数都出现2次。
这时可用异或操作找出这个只出现一次的数。
#include <iostream>
#include <numeric>
#include <functional>
using namespace std;
int main()
{
vector<int> nums = { 1,2,1,3,2 };
int num = std::accumulate(nums.begin(), nums.end(), 0, std::bit_xor<int>());
cout << num << endl;
return 0;
}
结果:
3
这里用了std::accumulate()
来简化代码,也可以写成for
循环形式。
4. 参考
http://www.cplusplus.com/reference/functional/bit_xor/
https://en.cppreference.com/w/cpp/utility/functional/bit_xor
网友评论