C++

ARC109-C, D

久々に出ました。ARCなので解けて1~2問。 面倒なので今後は ∈は e と書くことにしようかなぁ。 (集合の記号などは簡単に出せないので面倒この上ない) ブログ書くのも久々なんだけどちょっと時間空くとHatena書きにくくて仕方ない 断っておくと、正確性よりも…

久々に生存報告を兼ねて。 最近忙しいとかで個人的なプログラミングがほぼできていないので悲しい。 C++だと f(A)=>g(T)=>h(A) ?みたいな呼び出しができるけど(Aは任意の型、Tはテンプレート型) C#だとテンプレートを呼び出しに挟んでしまうと、多重定義の…

stateパターン

C++

stateパターンってどうなんだろうと前から思っている。 C++でゲームのコードを考える時によく出てくるように思うけれど 結局switchやifが消えてないように思うし、それぞれの子クラスが大きくならないか?って思う。 かといって子クラスがある程度肥大化する…

gitlab CIのメモ [ C++ / cmake ]

前書き gitlab.com C++の環境構築?のためにgitlab CIとかcmakeとか少し触ったのだけど、しばらく触らないかもしれないし、 忘れないうちにメモしておこうと思う。 申し訳ないけれど何をやったのか気になる方はいっそリンク先の .gitlab-ci.yml を見てほしい…

ABC131(A-E)

atcoder.jp 全体的に問題文が優しかったような気がする。 問題の難度も普通かそれよりも優しいものが多い印象。 その所為か提出速度でパフォーマンスが決まる感が強かったような。 いつもこんな感じなんだっけ。 A A - Security Si : 文字列Sの i 文字目 Si…

C++のthread

C++

非同期処理は前々から手を付けないとなぁと思っていたのでつけ始めた。 多分競プロとかには使えない。 できたコードはこれ。 なるほど。容易に自身の足を打ち抜いてしまうなぁ。 確かに処理時間は体感でも早くなると感じたし、処理内容によっては並列化した…

C++で関数を合成する

C++

関数 - ウォークスルー Haskell Haskellには関数を入れ子にしなくてもいい$演算子がある。 そのまま引用する。 関数適用のときに便利な $ 演算子を紹介しましょう. この演算子は関数適用の区切りに用いられ,カッコの多くなった式を読みやすくします. 次の…

ABC120

ABC120 UnionFindがわからないなら以下を見ると良いかもしれない。 UnionFindの解説 : B: Union Find - AtCoder Typical Contest 001 | AtCoder atcoder.jp A問題 方針 高橋くんが満足するほどお金を持っているなら C を出力 そうではないなら手持ちのお金 B…

std::functionのtarget関数

C++

std::functionというクラスのtarget関数の話。 std::functionの簡単な機能は以下の通り。 関数を動的に切り替えられる operator()で関数を呼ぶことができる。 explict operator bool でstd::functionが空かどうかわかる。 C++17からはassign関数が削除される…

GoogleTestで値をパラメータ化する

C++

GoogleTestで値をパラメータ化する。 内部で同じ判定をするならその実装を何度も書くなんて馬鹿げている。 たとえコピペで済むとしてもだ。 だから以下のようにテストしたいことはよくある。 int a{0}, b{10}; TestX(a); TestX(b); やりたいこと いくつも似…

GoogleTestで型パラメータを使う

C++

(久々に見てみたら人に見せる文章じゃないと感じたので修正。2019/02/12) メモ。コードはこれ。 github.com 背景:テンプレートなテストしたい Microsoft Visual community でC++のテストにGoogleTestが使える 他にはBOOST_TESTなども使える とりあえずGoo…