作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
这主要是语言律师类的问题,我怀疑大多数实现会打扰,尤其是因为它可能会增加每个用户的编译时间。
话虽如此:如果 std::set 的某些实现是使用每个实例的 bitset 和共享的 256 个值的静态数组实现的(因为键是 const 是安全的),那么根据(如果版本很重要,那么假设 C++20 ) 标准?
最佳答案
只要您遵守 [set]
部分中的标准规范,我认为没有任何限制会禁止您进行专门的实现。 .
对于 set<char>
或 set<uint8_t>
您需要 32 个八位字节来存储代表潜在成员的 256 位,具有非常快速的集合操作的优势。对于set<int>
你会消耗太多的内存,如果你有非常填充的集合,这只有在恕我直言是合理的。
话虽如此,有一些挑战需要克服:
extract()
应该返回(未指定)专用类型 node_type
的值的成员.不确定这个要求意味着什么,但我认为它可以通过与上述迭代器问题类似的方式来解决。 关于c++ - 使用 bitset 和共享静态数组将 std::set 专门用于 (u)int8 和 chars 是否合法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55982420/
我有一个带有模板函数的基类,该函数具有通用模板类型和专用版本。 #ifndef BASE_CLASS #define BASE_CLASS #include using namespace std;
我有这个 3D vector 模板 template class Vec3TYPE{ public: union{ struct{ TYPE x,y,z; }; struct{ TY
我是一名优秀的程序员,十分优秀!