OI選手STL常用備註

2022-07-09 03:36:13 字數 1936 閱讀 6215

本篇只是乙個作為oi選手經常使用的\(stl\)模板中的集合,隨時保持更新。

它是乙個向量型別的容器,可以容納很多態別的資料,稱為容器。

#include
vectorv;  //一維

vectorv[n]; //二維

vectorv[n]; //不同的二維表達形式

返回v的第乙個元素

v.front();
清空v

v.clear();
判斷是否為空, 空返回\(flase\), 不空返回\(true\)

v.empty();
在末尾插入乙個元素\(x\)

v.push_back(x);
刪除\(v\)的最後乙個元素

v.pop_back();
刪除\(v\)中的第\(n\)個到第\(m\)個元素

v.erase(v.begin() + n, v.begin() + m);
在\(v\)的第\(n\)個元素位置插入數值\(x\)

v.insert(v.begin() + n, x);
在\(v\)的第\(n\)個蒜素位置插入\(x\)個數值為\(y\)的數

v.insert(v.begin() + n, x, y);
返回\(v\)中元素的個數

v.size();
迴圈新增元素

for(int i = 1; i <= n; i++)

v.push_back(i);

\(queue\)為佇列,它的模板類需要兩個模板引數,乙個是元素型別,另乙個是容器型別,我們可以根據自己的需要來改變容器型別。它是先進先出的。

#include
queueq;
返回\(q\)中元素的個數

q.size();
向\(q\)的尾部新增乙個元素\(x\)

q.push(x);
返回\(q\)中最後乙個元素

q.back();
返回\(q\)中第乙個元素

q.front();
判斷\(q\)是否為空, 空返回\(flase\), 不空返回\(true\)

q.empty();
刪除\(q\)中的第乙個元素

q.pop();
在比賽中,我們經常用\(queue\)實現另一種叫做優先佇列的資料結構,它的好處是可以按照要求自動按照從大到小或從小到大排序。

priority_queue
\(type\) 就是資料型別,\(container\) 就是容器型別(\(container\)必須是用陣列實現的容器,比如\(vector\),\(deque\)等等,但不能用 \(list\)。\(stl\)裡面預設用的是\(vector\)),\(functional\) 就是比較的方式,當需要用自定義的資料型別時才需要傳入這三個引數,使用基本資料型別時,只需要傳入資料型別,預設是大頂堆

一般我們是這樣使用的。

//公升序佇列

priority_queue ,greater> q;

//降序佇列

priority_queue ,less>q;

//如果只想要公升序的話這樣預設的即可

priority_queuea;

其他的操作同上

STL String常用函式備註

對於string庫的函式用的比較少,常規的以下size 函式什麼的不在列舉,但是有些函式很好用,手寫做一下備註,省的到處查 1.string使用print輸出 常規條件下string只能使用cin和cout,但是使用printf輸出借助函式也可以 使用c str 函式 string str abcd...

bezierpath 常用方法備註一

uibezierpath path uibezierpath bezierpathwitharccenter cgpoint radius cgfloat startangle cgfloat endangle cgfloat clockwise bool 畫的圖形路徑 bezierpathwith...

SVN常用命令備註

1 將檔案checkout到本地目錄 svn checkout path path是伺服器上的目錄 例如 svn checkout svn 簡寫 svn co 2 往版本庫中新增新的檔案 svn add file 例如 svn add test.php 新增test.php svn add php ...