それについてBBメインプライオリティキューおよび文字列。ああ、そこにありますbitset
。
プライオリティキュー
- それを定義するのは簡単です:
priority_queue<int> pq;
- インテリアはヒープです。
基本操作
pq.top()
スタック要素のトップを取りません。(何のfront()
道を!)pq.push(x)
挿入します。pq.pop()
(ヒープのトップを削除)を削除します。pq.empty()
判決は空です。
カスタムの優先順位
- 最大ヒープ:
priority_queue<int> pq;
- 最小ヒープ:
priority_queue< int, vector<int>, greater<int> > pq;
- カスタム優先順位実際に存在する
cmp
方法(最大のチームの最初の優先順位):サプリメントはアルゴリズム[4] - STL使用 大きい列ODY>1
2
3
4
5
6
7
8構造体
{ BOOLの演算子() (CONST INT A、CONST INT B)のconst {戻り A> B; }};PRIORITY_QUEUE < int型、ベクトル < INT >、CMP> PQ; //この時間は最小ヒープであります
例
- 百回のトレーニング4078:http://bailian.openjudge.cn/practice/4078/
弦
定義が容易: string s;
基本操作
s.size()
文字列の長さ(インデックス0から始まります)。s.substr(a, n)
構成をサブストリング、最初の添字文字であり、nはサブストリングの文字長です。s'find(it1, it2, x)
ポインタit1
やit2
中間の文字を見つけx
、(s.find(x)
全体s
のルックアップx
)s.erase(a)
ポインタは同じ要素、Aの外観を除去することができるfind
ような指定された文字の除去と組み合わされs.erase(std::find(s.begin(), s.end(), ' '));
、任意のスペースを除去します。s.empty()
これは、ヌルかどうかを決定します。- サポート
push_back
とpop_back
;
- サポート
+
、=
および==
操作。
トラバーサル操作
- あなたはでき
auto it = s.begin(); it != s.end(); it++
トラバース。 - しかし、私は、一般的に使用
int i = 0; i < s.size(); i++
トラバースします。
そして、デジタル変換
文字列 - デジタル
stoi
、stol
、stoll
:整数への文字列。stof
、stod
、stold
:文字列のフロートスイッチ。
文字列へのデジタル
to_string
ダイレクトに変身しますstd::string
。
ビットベクトル
定義: bitset<length> b(value);
基本操作
- ビットコンピューティングのサポート
&
、^
、<<
、>>
というように。 to_string()
文字列に。to_ulong()
、to_ullong()
Isは符号なし整数に変換しました。flip(i)
i番目のビット反転、0からのインデックスflip()
のすべてのビット単位。