根据CPP Reference,std::priority_queue::emplace
“有效调用”
c.emplace_back(std::forward<Args>(args)...);
std::push_heap(c.begin(), c.end(), comp);
这里的“有效”是什么意思?这是否意味着emplace
与那些调用具有相同的功能,或者emplace
是使用这些调用实现的(我的理解是实现留给编译器)。如果emplace
真的是这样实现的,那不是效率低下吗?如果我将一个元素添加到现有堆中,则不需要堆化整个堆。