1. 程式人生 > 其它 >單機部署Rocketmq叢集

單機部署Rocketmq叢集

用處

\(set\)更多的用在可以用平衡樹做的題目中,換句話說,平衡樹的題用\(set\)一般都可以做。\(set\)支援查詢一序列的長度、是否為空,可以隨時插入、刪除元素,可以查詢某個點的前驅後繼等。

用法

呼叫

\(set\)作為\(STL\),要用到專門的標頭檔案。

#include<set>

\(set\)的呼叫與\(queue\)等類似:\(set<\)型別\(>\) 名稱,如:

set<int> a;

注意,\(set\)中的元素不可重複,若有重複,應用\(multiset\)

常用操作(以名稱為\(a\)\(set\)為例)

  1. 插入:\(a.insert(x)\)
    ,向\(a\)中插入一個元素\(x\)
  2. 刪除:\(a.erase(x)\),把\(a\)所有值為\(x\)的元素全部刪除。
  3. 查詢:\(a.find(x)\),查詢\(a\)中第一個值為\(x\)的元素的地址
  4. 是否為空:\(a.empty()\),判斷是否為空,用法與\(queue\)一樣。
  5. 大小:\(a.size()\),返回\(a\)的大小,即元素個數。
  6. 前驅:\(a.upper_bound(x)\),返回第一個大於\(x\)的元素的地址
  7. 後繼:\(a.lower_bound(x)\),不是真正意義上的後繼,是返回第一個大於等於\(x\)的元素的地址,要想求後繼要將地址\(--\)
  8. 第一個值:\(a.rbegin()\),返回\(a\)中的第一個值,即最大值。
  9. 末一個值:\(a.end()\),返回\(a\)中的最後一個值,即最小值。

例題:CF528A Glass Carving

題意