メモの日々


2001年04月05日(木) L!Sをよろしく

今日もちょっと着信通知の試験をした。着信通知はきちんと動くようです。

問題はPalmのクライアントなのだ。モ接続中にPushを受けれるのはPalmしかないからそこの試験はPalmでやるしかないのだ。Palmだとおかしくなる可能性は十分あるのだ。

L!メールは色々あって面倒。L!トークの方が全然簡単なのだ。

L!の試験は自動化すべきなのだ。

ThinkPadに最新のL!クライアントをインストールした。そのとき誤って旧版のL!クライアントを消してしまった。あれはもうダウンロードできないのに。

ライブリンクは使いづらい。もうバックアップ復活してるのかな。

ライブラリは図書館。関係ないやん。つっこみってこういう事かなあ。

浜ちゃんは雅功と書いてまさとしと読む。まさこうやん。つーことははまこうやん。

toto買った。毎回ダブル2つで400円買うことにしよう。

セガからダウンロードしたぷよぷよiアプリはつまらん。対戦になってないからだ。落ちてくるだけならテトリスの方がずっと面白い。

m-floの「EXPO EXPO」を買った。新品。1000円分スタンプ溜まったぞ。

ネットワーク委員会の議論は突然始まる。前のやつは結論どーなったのだ。

なんかどうでもいいことを書きすぎてしまった。ごめんなさい。


2002年04月05日(金) ベイスターズ開幕5連敗

会社

  • 11:25 高本さん兒玉くん村徹くんが新人のインタビューに答えているなり。おれはSFAのコーディングを開始したいなり。
  • 18:40 GIGAの実験環境を片付けたところ。さらばGIGA。

テレビ/本

  • JavaWorldを少し。またもやMDAの話とか。
  • モーニング立ち読み。佐々木小次郎やっと少年になった。
  • ヤングサンデー立ち読み。ルーズソックスを盗む話。

2003年04月05日(土)

[life][work] 印鑑&合資会社

実印ていくらくらいで買えるのだろうとウェブサイトを見ていたら、意外に安かったのでウェブから注文してしまった。注文したのは印鑑の優美という店で、黒水牛の15mm実印が5200円。ケース付き送料無料支払い代引きでいい感じ。果たしてどんなのが送られてくるか。

で、この印鑑屋さんに何故か合資会社の説明があったのでメモ。

[life][退職] 離職票

会社から離職票1と離職票2と「離職された皆様へ」という冊子が送られてきた。これでハローワークへ行くことができる。しかし実は仕事の依頼が来てたりしてます。ちょっとでも仕事請けちゃったら失業給付金貰えないのかなあ、よくわからん。

ER7放送開始

NHKで始まってました。毎週土曜はERと心に焼き付けておかねば。

[link] 睡眠から起つ (ソリッドウェブ)

朝起きるための色々な目覚まし時計の使い方。どれもよく聞く使い方だと思うけど、文章がところどころ面白い。

やること

  • 退職後の手続きをまとめる
  • クリーニング屋へ行く
  • 風呂場の掃除
  • シャンプー・ボールペン・座椅子買う

2005年04月05日(火)

  • 休み。

[db][security] 「SQL Server お勧めセキュリティ TIPS (2004/10 〜2005/3 連載分)」 (河端善博の .TEXT でウェブログ)

なんとなくメモ。PASSJ MLより。

やること

  • リンク元のスリム化
  • tDiaryバージョンアップ
  • FSWikiバージョンアップ
  • オーブンレンジ用べんり棚
  • ブラウンの安い電動歯ブラシ買う
  • 蛍光灯を捨てる

2006年04月05日(水)

  • 仕事が暇になった。素晴らしい。
  • テスト項目の作成を手伝うよう頼まれたので作成している。

[link][work] 「年金は本当に破綻するの?〜若者のための年金講座」 (吉田社会保険労務士事務所)

年金の話題が色々ある。でも国民年金基金の話はなさそう。他に健康保険や労働法に関するページもあり参考になる。登 大遊@筑波大学情報学類の SoftEther VPN 日記より。

やること

  • インストーラ生成
  • テーブル生成
  • ダミー測定(やめ)

2008年04月05日(土)

  • とにかく眠い。
  • 父親の仕事の手伝いをした。今日でおしまいの予定。
  • 朝日ネットの料金確認したら、3月分は無料になっていた。引越しの際にADSLを一旦解約して申込し直したからかな。得した。
  • 深夜だけど今から洗濯するよ。

やること

  • シュレッダー

2019年04月05日(金)

[c++] 二分探索にはstd::partition_point()が使える

C++で二分探索を行いたいときはstd::lower_bound()を使っていたが、C++11で導入されたstd::partition_point()を使えばより柔軟に二分探索が行えることを知った。

lower_boundはpartition_pointの特殊なケースに過ぎない。

lower_boundは使えずpartition_pointなら使える例として、次を行うコードを示す。

  • 文字列長を基準にソートされた文字列配列から、特定の文字列長の文字列を二分探索で見つける
#include <algorithm>
#include <iostream>
#include <iterator>
#include <string>
#include <vector>

template<typename Langs>
std::string f(const Langs& langs, int length)
{
  const auto it = std::partition_point(
      std::cbegin(langs),
      std::cend(langs),
      [length](const auto& s) { return s.size() < length; });
  return it == std::end(langs) ? "" : *it;
}

int main()
{
  std::vector<std::string> langs = {
    "c", "c++", "go", "rust", "c#", "java", "swift", "python", "ruby", "javascript"
  };
  std::sort(
      std::begin(langs),
      std::end(langs),
      [](const auto& lhs, const auto& rhs) { return lhs.size() < rhs.size(); });
  std::cout << f(langs, 3) << std::endl;
  std::cout << f(langs, 7) << std::endl;
}
c++
javascript

2020年04月05日(日)

[c++] std::priority_queueのメモ

C++のstd::priority_queueを使うときにいつも調べる羽目になるのでメモしておく。

デフォルトの動作

std::priority_queueにはpush()で要素を追加でき、top()で「優先度が最高の要素」を取得できる。 デフォルトの優先度の決め方は

  • std::lessで比較した時に大きい要素が優先度が高い

である。なので、例えば整数を格納すると値が最大の要素を取得できる。

#include <iostream>
#include <queue>

int main()
{
  std::priority_queue<int> q;
  for (int i : {1, 2, 3, 1, 2, 3}) {
    q.push(i);
  }

  while (!q.empty()) {
    std::cout << q.top() << " ";
    q.pop();
  }
  std::cout << std::endl;
}
3 3 2 2 1 1

優先度のカスタマイズ

優先度の定義をカスタマイズするためには、

  • 要素を比較するためのファンクタのインスタンス
  • 要素を比較するためのファンクタの型
  • 要素を格納するためのコンテナの型

を指定しなければならない。1番目はコンストラクタの引数で、2番目と3番目はテンプレートパラメータで指定する。3番目を指定しなければいけないのは面倒だが、通常はstd::vectorを指定しておけばよい。

上の例の優先度の定義を逆にするには、qの宣言を

  std::priority_queue<int, std::vector<int>, std::greater<int>> q;

と変更することになる(ファンクタのインスタンスはファンクタのデフォルトコンストラクタで生成されるものでいいので指定していない)。これでtop()により値が最小の要素を取得できるようになる。std::greaterを指定すると最小の要素を取得できるようになるという所が混乱しやすいので注意。

優先度をラムダ式で指定する

優先度をラムダ式で指定するにはdecltypeを使えばよい。上のstd::greaterの代わりにラムダ式を使う場合は

  auto comp = [](int lhs, int rhs) { return lhs > rhs; };
  std::priority_queue<int, std::vector<int>, decltype(comp)> q(comp);

のように書く。