read-eval-print loop

プログラミング関連のメモ

メンバー関数にもとづいてソートする

「オブジェクトの状態に依存したソートを行いたい」ということがあると思います。 #include <vector> using namespace std; class A { public: A(int k); vector<int> sorted(); private: vector<int> vec; int param; }; A::A(int k) { param = k; } vector<int> A::sorted() { // </int></int></int></vector>…

forループで符号なし整数を使って0までカウントダウンする

for文で符号なし整数を0までカウントダウンする場合、当然ですが>= 0という条件は使えません。 // 条件が常に真になるため無限ループ for (unsigned int i = n-1; i >= 0; i--) 可能ならば符号付き整数にキャストしてしまう、i == 0の場合をforの外に出す、…

リンクをスクリプトファイルに張ったときスクリプトファイルのパスを取得する

シンボリックリンクを介してスクリプトを実行すると、スクリプト内の__file__にはシンボリックリンクの情報が格納されます。 import os.path print(__file__) # -> リンクのパス print(os.path.dirname(__file__)) # -> リンクの親ディレクトリ os.path.real…

二分木を配列で持つときのインデックスづけについて

二分木は一次元の配列として表現できます。例えば、インデックス0をルートとして、xの左の子は2*x+1,右の子は 2*x+2といった具合です。 ところで、このインデックスづけは1.「どの子のインデックスも他の子やルートと被らない」という必須の性質と、2.「配列…

HackerRank: Kingdom Division

HackerRankの問題Kingdom Divisionの自分の解法が解説のものとは異なっていたのでアイデアをメモ。 木についての再帰を使って場合の数を数え上げる。そのために部分木に注目した際の2つのカテゴリを考える。 open: 部分木の根の都市が味方の都市と接してい…

Linuxでデバイスがマウントされているか知る方法

例えば、外付けHDDが接続されていない(マウントされていない)状況で、そのディスクをターゲットとしたバックアップを実行すると、マウントポイント以下、つまり内蔵ディスクに対してバックアップファイルが生成されてしまいます。 これを防ぐためには、デ…

HaskellでPerl互換の正規表現ライブラリの使い方と比較

Haskell初心者の方へ 簡単なまとめ 注意点 regexpr 使い方 regex-pcre 使い方 バグについて 例 方法1: ByteStringを使う 方法2: パッチをあてる pcre-light 使い方 pcre-heavy 使い方 text-icu 使い方 さいごに HaskellのPerl互換の正規表現ライブラリregexp…