マガジンのカバー画像

技術メモ

72
運営しているクリエイター

#初期化

ラッチ──初期化は一回だけ

関数に入ったとき、それが最初のときだけある処理をしたい。そんな要求がわりとある。

static bool initialized = false;if (!initialized) { // 初期化処理 initialized = true;}// 通常処理

これで十分目的は達しているのだけれど、まだコードがアセンブラで書かれていた古い時代に「自己書きかえ」という黒魔術があったという話がい

もっとみる

n要素のstd::vectorを初期化する

すべてを同じ要素で初期化するなら vector のコンストラクターでよい。
そうではなく、異なる要素で初期化したいなら generate_n がつかえる。
たとえば 0 から n-1 の値で埋めたいなら、こうする:

auto&& vector = std::vector<int>();vector.reserve(n);int i = 0;std::generate_n(std::back_in

もっとみる