C++ 设置bit&;的最佳方式是什么;为什么?
如果我必须设置第四位 哪种方法最好 方法1:C++ 设置bit&;的最佳方式是什么;为什么?,c++,c++11,bit,bitmask,C++,C++11,Bit,Bitmask,如果我必须设置第四位 哪种方法最好 方法1: a |=(1这两者是等价的 正如您所注意到的,使用1,这两种方法的作用是相同的。让我重点关注不同的部分: (1)在执行时没有差异。任何编译器都应该常数fold1 #include <bitset> #include <iostream> int main(int, char**) { auto a = std::bitset<8>{}; a.set(3 /*zero based indexing
a |=(1这两者是等价的
正如您所注意到的,使用
1,这两种方法的作用是相同的。让我重点关注不同的部分:
- (1)在执行时没有差异。任何编译器都应该常数fold
1
#include <bitset>
#include <iostream>
int main(int, char**)
{
auto a = std::bitset<8>{};
a.set(3 /*zero based indexing*/);
std::cout << a.to_string() << std::endl;
return 0;
}