2017-02-01から1ヶ月間の記事一覧

コンテナからの要素削除

c++

ひさしぶりに書くとこんな事も忘れてしまっていた.下記のコードでセグメンテーションフォールトが出た. でも,そもそもremove_ifをこんな時には使うようだ. std::list<int> lis {0,1,2,3,4,5,6,7,8,9}; for (auto itr=lis.begin(); itr!=lis.end(); ++itr) { i</int>…

ポリモルフィズム

c++

目的 オブジェクトによって振る舞いを変える. 方法 子クラスのポインタを親クラスのポインタに代入するのがミソ.(子クラスは親クラスのポインタに代入可能.逆はだめ.) それを使う側は親クラスのポインタを引数なりにして受け取って,親クラスのメソッド…

テンプレートのメモ

c++

基本 型推論 関数テンプレートの場合は型推論されるので,実体化の際に明示的に型を書かなくても良い. クラステンプレートの場合には推論されないので注意. 特殊化 テンプレート関数,テンプレートクラスがある時に特定の型でだけ別の動きをしたい場合には…

二分探索 バイナリサーチ

簡単でかつ効果が高いのでよく使うサーチ. 意外と境界条件でバグりがち.味噌は,右側を配列の外において置く. #include<iostream> #include<vector> using namespace std; int main() { int d, n; cin >> d; cin >> n; vector<int> v(n); for (int i=0; i<n; ++i) cin>>v[i]; int l=0, r=v.siz</n;></int></vector></iostream>…

線形探索と番兵アルゴリズム

番兵アルゴリズムはただの書き方の問題だと思ってたけど,高速化のテクニックだった,という話. forでvectorの要素を回す時に,毎回比較演算が行われるけど,それが勿体無いという場合に,絶対に止まるよに番兵を置いておいて無限ループで回すというのが番…

プロコンと標準入出力

c++

プロコンをかじってみたら,標準入出力で躓いた...ということで,使い方を整理しておく. scanf 空白文字または改行文字を区切りとして,フォーマットに従って変換して変数に取り込む.2つ以上フォーマット指定子を指定すれば一度にその分だけ読み進む.…