整列済みの配列や構造体をバイナリサーチできる関数です。
ただ、結構使い方が面倒なのでメモ。
今書いてまs
shuzo-kino.hateblo.jp
でも扱った構造体ですが、これをスッカスカな構造体の代わりに使う手があります。
typedef struct { uint16_t key; char* value; } data; const data myDataArr[] { {123, "AB"}, {1023, "CD"}, {5011, "FE"} };
いままで時刻というと
2013-09-01 06:52:14
といった読みやすいフォーマットを勝手に作ってましたが
GPSと連動する仕事が多くなってきてスペースが邪魔だったり色々あったので
調べ直してみました。
すると、当然というか何というか、世界基準のタイムスタンプISO 8601というのが。
しかもコレ、デフォで標準時とのズレも書くようになってるのでスマート。
まあ、細かい違いもあり
基本形式は
20200113T143842+0900
拡張形式(やや見やすい)だと
2020-01-13T14:38:42+09:00
dateコマンドの"--iso-8601"では後者の拡張形式が採用されています。
警句や諺の類を理解する上で、前後の文脈や社会的背景を知ることが重要です。
仏教系の本を何度か読書メモで紹介してますが、そういう言葉もやはり先行した考え方があったわけで……
というわけで、通しで勉強するべく、評判の高い飲茶氏による本書を買って読んでみました。
構成は古代インド哲学から中国、最後に日本の禅に至る流れになっています。
軽妙な語り口で、それでいてポイントをしっかり繰り返し教えてくれるので楽しく読むことができます。
が、結構な分量があるので……私は客先打ち合わせの合間を縫って、5日かかりました。
入門書ということで、これ以上突っ込んだ内容は既存の解説書を読んでいく必要がありそうです。
ハッカーのたのしみ―本物のプログラマはいかにして問題を解くか
「本物のプログラマはいかにして問題をとくか」という副題の通り、
アルゴリズムやデータ取り扱いの本になります。
ただ、全体的に想定がマニアックというか……暗黒シェル芸、あるいは競技プログラミング的というか。
古い時代からのおもしろ話が多い関係でビット演算芸が多いのも特徴です。
今日日のコンパイラは数学と情報工学を修めたテックモホークが寄ってたかって改良を加えているので
こういったスゴスゴチューニングをせずとも、高級言語でもコンパイルすれば結構な速度がでしまいます。
BEGINで設定する方法もあるのですが、"-v"を使うと引数として設定できます。
ワンライナーをゴリゴリ書きたい時に使えますね。
$ awk -v whoami="you" "{print whoami}" you
複数指定も可能
$ awk -v fizz=3 -v buzz=5 "{print fizz * buzz}" 15