geek-branch

書き置きです。

C++

"Effective Modern C++"を読んでいる

Effective Modern C++を読み直している。 C++11/14で気をつけたいtipsが記載されており、僕の中では一番思い入れが強いC++の書籍である。 というのも、この書籍に出会うまではいまいちモダンなC++の書き方というものを知らなかった。 僕の周りにはベターCの…

テンプレート関数で配列を受け取る

テンプレート関数に配列を渡したいなーとたまに考えることがあった。 しかし、T[]で受け取ることはできないし、T*で受け取ってもサイズの情報を引数だけで持たせることはできないしなあ、と考えていたけれど、以下のコードで可能だった。 #include <iostream> template<typename T, std::size_t N></typename></iostream>…

ある程度どの型でもAtCoder提出形式にしてくれる関数

ここ数日延々とC++ばかり書いている。きっかけはAtCoderでコンテストに出ているときにいちいち cout << " " << ans << " " << endl; のように書くのダサくね?めんどくさくね? みたいなことを思ったから。 どんな型でも渡すとうまいこと提出用の形にしてく…

forの初期値をdecltypeで推論する

基本的になんでもauto型で推論させたい派だから、vectorとかarrayなどのコンテナを使うとき for (auto i = 0; i < vec.size(); i++) {} 本当はこう書きたいんだけど、まあもちろん0から推論するとint型になるわけで。.size()からはsize_tが返るからこれはま…

#include <bits/stdc++.h>の波線がどうしても消えなかった

今までWindowsのVisual Studioを使用して競技プログラミング出てたんだけど、本腰を入れようということで この辺の記事なんかを参考にさせてもらいながらMacの環境を整えた、ら、なぜか#include <bits/stdc++.h>の波線が恐ろしく消えなかった。昔ちょっといじくって変な感じ</bits/stdc++.h>…

C++11以降で使える時間計測クラス

前々から読みたかったOptimized C++をやっと読めたし、影響を受けてホットスポットの検索やパフォーマンス改善時に使える時間計測クラスをなんとなく作った。Qiitaに載せていたが大した内容でもないしブログに移行。 使用したのはC++11より追加されたchrono…