我查看了 boost 的实现,dynamic_bitset
发现他们比较了底层整数存储类型以提高operator<
性能,我用下面的代码测试了正确性并得到了不一致的结果。这是一个错误吗?
std::vector<bool> v1, v2;
v1.push_back(0); v1.push_back(1);
v2.push_back(1); v2.push_back(0);
std::cout << (v1 < v2) << '\n';
boost::dynamic_bitset<> b1, b2;
b1.push_back(0); b1.push_back(1);
b2.push_back(1); b2.push_back(0);
std::cout << (b1 < b2) << '\n';
我希望两者的输出都是1
,但第二个输出是0
.