move() && less<>()

 priority_queue<int> pq(less<int>(), move(nums));

对比与优势

  1. 时间复杂度 O(N):优先队列接收到底层数组后,内部直接调用类似 std::make_heap 的算法进行一次性原地建堆,远快于一个个 push 的 O(N log N)。
  2. 空间开销 O(1)(零拷贝)std::move 让优先队列直接“夺取”了 nums 原本的内存指针。没有申请新内存,也没有发生任何元素的复制。
posted @ 2026-03-02 14:54  Sunstreamy  阅读(0)  评论(0)    收藏  举报