2006-10-01から1ヶ月間の記事一覧

pimplイディオム

いままで,pimple(ニキビ)イディオムだと思ってたけど, class FooImpl; class Foo { private: FooImpl* pImpl; (略) }; のpImplか来ていたのか.ニキビって…

連想コンテナ(7)

現時点でのコード.連想コンテナ(2)と対して変わらないような.

連想コンテナ(3)

同じkeyを持っているデータを登録した場合に,前のデータを上書きしたいんだけど,それだと前のデータを削除するやつがいない.かといっていちいち前のデータがあるか確認して削除,その後に挿入となるとvectorなのでコストが掛かってしまう.ということで削…

連想コンテナ(4)

dataをポインタではなく実体で受け取る場合,参照渡しのほうがいいのではないか?また,keyもbool operator()(const Item& i, const KeyType& k)のKeyType&ように常に参照渡しになっている部分があるが,デフォルトのintの場合は値で受け取り,int以外の場合…

連想コンテナ(5)

コンテナにオブジェクトの実体を入れる場合,Insertに参照渡しをしても,insertでもpush_backでもコピーコンストラクタが3回呼ばれる. v.insert( it, Item(key, data)); // 1.Item(key, data)で作成, insertが _Insert_n(_Where, (size_type)1, _Val); を…

段落の並び

1日に何個も書くと,左の最新タイトルがおかしくなるので,無理に逆順に書いてみたが,それはそれで問題があるような.どうしたものか.

連想コンテナ(6)

そろそろ正しい実装を探そうかと調べてみたけど見つからない.Sorted Array Map, Associative Sequenceが似たようなコンセプトらしいということだけは判った.検索能力低し…dataに対する削除処理はつけたが,keyに対しても削除処理が必要なのだろうか?自分…

連想コンテナ(1)

struct XxxData { int id; // データ類 }; int Xxx::getIndex( int id) { int i = 0; for( std::vector::iterator it = xxxDataSet.begin(); it!=xxxDataSet.end(); ++it,++i) { if ((*it).id==id) return i; } return -1; } のように,構造体の中にidを入れ…

連想コンテナ(2)

超適当なバージョンを作成してみる.

STLの勉強

typedef std::pair Item; typedef std::vector List; typedef typename List::iterator iterator; List v; void DoAll( void (*pFunc)(DataType&)) { for( iterator it = v.begin(); it!=v.end(); ++it) { pFunc( it->second); } } こんな関数があったらいま…

時間切れ

ソースコード中に「// TODO: 〜〜する」とか「// MEMO: 〜の処理は〜するべきか?」とか書き散らかしてとりあえず作業や決定を後回しにする方なのだが,REMINDER( 20061201, "TODO:〜〜する");と書いたら,12月1日以降はコンパイルエラーが出るように出来た…

export

今頃になってvc8にexportキーワードが実装されていないことに気づいた. id:iken0:20060915に書いたようにtemplateを全然使いこなしてないからなー.それにしてもtemplateの使い方がいまいち判らないな.何か教科書を探して読まないと.