对不起,如果这是一个愚蠢的问题:-)
我有遗留代码,如下所示:
struct {
int field1;
int field2;
int field3;
int field4;
... many many fields
} myStruct;
while (something) {
initialzationFunction(&myStruct);
// ...change fields of myStruct and do stuff.
}
Run Code Online (Sandbox Code Playgroud)
while循环的每次迭代都需要将myStruct初始化为某个东西,假设为零.initialzationFunction将myStruct的所有字段初始化为零.
将initialzationFunction保留在while循环中是否合适,或者最好在循环之前调用它一次,如果碰巧更改此代码,让程序员"手动"初始化他们需要的东西.
编辑:不幸的是myStruct是一个全局变量,因此将其作为自动变量不是一个选项,除非我想将它作为参数传递给大量使用它的遗留函数.
你会怎么做?
unordered_map如何在内部使用哈希函数来访问属于键的存储桶?
std :: hash返回size_t类型,该类型可能大于容器中存在的存储桶的数量。返回的哈希值如何映射到存储桶索引?
典型的unordered_map实现是按size()还是max_size()对返回的哈希值进行模运算,还是会发生更复杂的事情?