解題的過程中有時候,根據題目的要求我們很難去自己實現一種滿足題意的數據結構,但是如果我們對STL庫比較熟悉的話,可以通過改寫里面的一些庫函數,從而滿足題意的要求。在做題的過程中常見的一些方法主要是對小於號<進行改寫。
對set中的<進行改寫和對priority_queue中的<進行改寫,主要是對這兩種數據結構中的存儲對象(也就是自己定義的一個結構體)進行改寫,改寫的方法如下:
1 struct Node { 2 int num; 3 int index; 4 bool operator<(const Node& a) const { 5 return a.num == num ? index < a.index : a.num < num; 6 } 7 };