NoS*_*tAl 16 c++ stl set bitset language-lawyer
这主要是语言律师的问题,我怀疑大多数实现都会麻烦,特别是因为这可能会增加每个用户的编译时间。
话虽如此:如果对std :: set的某些实现是针对每个实例和共享的256个值的静态数组使用位集实现的(由于键为const,这是安全的),根据该标准,这是否合法?
我认为只要您遵守 部分中的标准规范,就没有任何限制会禁止您进行专门的实现[set]
。
或者set<char>
,set<uint8_t>
您需要 32 个八位位组来存储表示潜在成员的 256 位,并具有非常快的设置操作的优点。因为set<int>
你会消耗太多内存,而且恕我直言,如果你有非常多的集合,这才是合理的。
话虽如此,仍有一些挑战需要克服:
extract()
成员应该返回(未指定的)专用类型的值node_type
。不确定这个要求意味着什么,但我认为它可以通过与上面的迭代器问题类似的方式解决。