あああ、C++、set

まず

using namespace std;

を書いておく。


set<int> Hoge;

Hogeという名前のsetを作る(要素はint)


Hoge.insert(2);

Hogeという名前のsetに要素2を追加する


auto c = Hoge.erase(2);

Hogeというリストから2を削除する。Hogeに要素2が含まれていればc=1になり、Hogeに要素2が含まれていなければc=0になる。つまり、cは要素を削除した回数である。setは重複する要素をまとめて格納してくれるのでcは0か1のどちらかである。


set<int> Hoge = {0, 1, 2, 3, 4};
for (auto it = Hoge.begin(); it != Hoge.end(); ++it) {
   cout << *it << endl;
}

itはイテレータの略である。auto it=Hoge.begin()でitはHogeの初めの要素のキーとなる。*itはitがキーとなるHogeの要素である。Hoge={0,1,2,3,4}であれば*itは0である。++itでitは次の要素のキーとなり、++itを一回行うと*itは1となる。もう一回行うと*itは2となる。--itはその逆。mapとsetには--itが使えるが、std::unordered_map や std::unordered_setではできない。


set<int> s;
multiset<int> ms;
s.insert(); //要素の追加
s.erase(); //要素の削除
s.find(); //発見したらその要素へのイテレータを返す
s.count(); //要素の数を返す
s.empty(); //空ならtrue
s.size(); //要素数を返却
s.clear(); //空にする


この記事が気に入ったらサポートをしてみませんか?