koturnの日記

普通の人です.ブログ上のコードはコピペ自由です.

2018-01-01から1年間の記事一覧

IQ1の人間が書いているVimの設定の一部

この記事はIQ1 Advent Calendar 2018の10日目の記事です. 特に書くことを決めてなかったのと,最近Vimconf2018やOsaka.vim等でVimに対するモチベーションが高まっているのでVimのことを書きたいと思います. Vimのモチベーションが高まっていなかったら,艦…

C++におけるfinallyの実装

C++

はじめに この記事は世間では十分に議論され尽くしてきたC++におけるfinally句という話について書こうと思う. 「C++にはfinally無くて不便ですよね」という言葉は,実際にお仕事をしていて聞くことのある言葉なのだが,やはりC++初心者はfinallyが無い理由…

多次元の std::array を楽に扱う

C++

はじめに 前回の記事では,多次元の std::vector について書いた. 今回は多次元の std::array について書こうと思う. まず,std::array は組み込み配列と同等の機能を提供するクラスである(というより,組み込み配列のラッパークラスである). 使用方法…

多次元の std::vector を楽に扱う

C++

はじめに C++には std::vector という動的配列を扱うクラスが用意されている. このクラスはよく利用され,時には std::vector の std::vector,すなわち多次元の std::vecotr が用いられることがある. しかし,この多次元の std::vector は std::vector<std::vector<int>> v</std::vector<int>…

競技プログラミングとC++のアレコレ

C++

はじめに この記事は,C++初心者だけど競技プログラミングでC++を使っている,C++で競技プログラミングをやってみようと思っている人に向けた記事である. 「C++初心者」対象であって,プログラミングそのものが初心者である人向けではないかもしれない. な…

C++の配列・STLコンテナで区切り文字を入れてostreamに出力する

C++

はじめに C++において,たまに std:cout や std:ofstream, std::ostringstream といった出力ストリームに,配列や std::vector の要素を何かの区切り文字を入れて出力したいことがある. この「区切り文字を入れて出力」というのは少々面倒で,末端要素の後…

Range-based forで逆順走査したい

C++

はじめに C++を書いていると,Range-based forで逆順操作をしたいことがたまにある. Range-based forは順方向の走査のみで,逆順に走査することはできない. なので,通常のインデックスベースのforを用いて, std::vector<int> v{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}</int>…

C++のラムダで再帰する

C++

はじめに C++において,ラムダで再帰したいと考えることはたまにある. この記事ではラムダで再帰する手法をいくつか紹介する. 例として扱う再帰関数はフィボナッチ数列の関数(もっとも単純な実装)とする. int fib(int n) noexcept { return n < 2 ? n :…

タブ番号,バッファ番号,ウィンドウ番号,ウィンドウIDの相互変換

Vim

はじめに 先日,「Vimで既に対象バッファを開いているウィンドウがあるとき,そのウィンドウに移動する」と「Vimのタブ番号,ウィンドウ番号,ウィンドウID,バッファ番号の一覧情報を表示する」の2記事で,タブ番号,バッファ番号,ウィンドウ番号,ウィン…

Vimのタブ番号,ウィンドウ番号,ウィンドウID,バッファ番号の一覧情報を表示する

Vim

はじめに 先日の記事Vimで既に対象バッファを開いているウィンドウがあるとき,そのウィンドウに移動するでは,「タブ開きすぎると,どのタブでどのバッファ開いているかわからなくなるから,同じバッファを複数のウィンドウで開いてしまう」というIQ1的な事…

Vimで既に対象バッファを開いているウィンドウがあるとき,そのウィンドウに移動する

Vim

はじめに 僕はVimのタブ機能をそこそこ活用する方である. だが,「このバッファは既に開いている」ということを忘れることが多々あり,複数のタブで同じバッファを開くことがある. Vim8.0になり, win_gotoid() というVim scriptの関数が追加された. これ…

VimのCtrl-X補完を使えるようになりたい

Vim

はじめに Vimにはデフォルトで補完機能が備わっている. 実践Vim 思考のスピードで編集しよう!であったり,daisuzuさんの2015年のVim Advent Calendarの記事VimのCTRL-X補完について - daisuzu's notesを読むと,neocompleteやdeopleteに頼るだけではなく,…