我尝试从Google B + Tree了解插入操作背后的想法。 我知道B +树的工作原理,我想了解C ++代码。
他们使用运算符new(),这对我来说是新的,但是我已经阅读了。 我自己的实现是这样的(伪):
struct leaf{
Key_type val[k];
size_t count;
}
void insert(Key){
...
node = new node();
node->val[i]=key;
...
}
他们使用1422行中的new()(722行)
void value_init(int i, const value_type &x) {
new (&fields_.values[i]) mutable_value_type(x);
}
他们在哪里分配内存,在那里使用? 应该在代码中预先分配这样的东西吗?
mutable_value_type *fields_= new mutable_value_type[sizeof(mutable_value_type)*32];