似乎分配器与“placement new”和“operator new”做同样的工作。并且它的界面更方便。
例如:
string *ps = static_cast<string *>(operator new(sizeof(string)));
new (ps) string("Hello");
cout<<*ps<<endl;
可以改写为
allocator<string> as;
string *ps2 = as.allocate(1);
as.construct(ps2,"Hello");
cout<<*ps2<<endl;
那么这是否意味着“放置新”和“新操作员”已过时?