スポンサーサイト
--/--/-- (--) --:--:--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
スポンサー広告 | page top↑
賞与
2009/11/30 (Mon) 09:03:48
今日はプログラミングのバイト先の会社に行ったらボスが机までやってきて、「個人売上計算書」つまりボーナスの通知書を渡された。

「えぇっ!?そんなんあるんですか?」
アルバイトだからそんなのは関係ないと思っていたので素で驚いた。久しぶりにびっくりした。
会社に入ってから一年半以上、ここで社会保険等に加入させてもらってからも一年以上経つけどボーナスをもらったのは初めてだ。ようやく少しは役に立つ働きができるようになってきたということかな、と思った。


その時ボスに、
「来年もこの調子でがんばってください」
と言われた。

もっとがんばってねみたいな感じで言われたことは何度もあるけど『この調子で』と言われたのは初めてだった。
自分は仕事が遅いと思いながら一つ一つやってきたけど、これでよかったんだ、認めてもらえたんだと思って嬉しかった。

もちろん来年もこの調子以上にやるつもりですので見ていてくださいね、と固く心に誓ったのであった。
スポンサーサイト
未分類 | トラックバック(0) | コメント(0) | page top↑
胃痛
2009/11/22 (Sun) 14:39:25
空腹→豚骨らーめん(こってり)→食後の紅茶(アールグレイ)で、胃が痛くなった。
案外胃が弱いのかな・・・。
未分類 | トラックバック(0) | コメント(2) | page top↑
スピードパス
2009/11/21 (Sat) 19:05:52
Esso, Mobile, ゼネラルのガソリンスタンドで使えるキーホルダ型の決済システム。
speedpass

手持ちのクレジットカードから引き落とし先を指定できるので新しくクレジットカードを作る必要はない。
何よりバイクのキーにつけておけば給油するのに財布を出さなくていいのがバイクライダーには非常に有難い。便利!!

このスピードパスを作ったガソリンスタンドのおじさんは丁寧な対応で、説明途中に
「手前どもは・・・」
という台詞が入ったのでびっくりした。
「てまえども」って普段生きている現実世界では滅多に聞かない言葉だ。
執事とかが使いそう?
少し萌えた。

スピードパスについてはこちら↓
http://www.self-express.jp/speedpass/index.html
特にバイクに乗る人にお薦めです。
未分類 | トラックバック(0) | コメント(0) | page top↑
C++ std::vectorのeraseとinsertについてのメモ
2009/11/17 (Tue) 00:09:17
  • iterator erase( iterator start, iterator end ); start とend の間にある要素を削除
  • void insert( iterator pos, input_iterator start, input_iterator end ); start から end までの要素を pos の直前に挿入する。
erase: http://msdn.microsoft.com/ja-jp/library/ceh559x2%28VS.71%29.aspx
insert: http://msdn.microsoft.com/ja-jp/library/s5bta5ha%28VS.71%29.aspx


vector要素の並べ替えが必要な作業があったので、eraseとinsertを使うことにした。

例えば"10, 20, 30, 40"を"30, 40, 10, 20"とするのに
まず"10, 20, 30, 40"の前2つを末尾にinsertして、"10, 20, 30, 40, 10, 20"、
次に"10, 20, 30, 40, 10, 20"の前2つをeraseして、"30, 40, 10, 20"とした。
コードは以下。

vector v1;
v1.push_back( 10 );
v1.push_back( 20 );
v1.push_back( 30 );
v1.push_back( 40 ); // v1:"10, 20, 30, 40"

v1.insert(v1.begin() + 4, v1.begin(), v1.begin() + 2); // v1:"10, 20, 30, 40, 10, 20"

v1.erase( v1.begin( ), v1.begin() + 2); // v1:"30, 40, 10, 20"


ここまではいいのだが、このv1にさらに次のinsertを行った所で実行時エラーとメモリリークが起こった。

v1.insert(v1.begin(), v1.begin() + 2, v1.begin() + 4); //★ v1:"10, 20, 30, 40, 10, 20"となって欲しいが実行時エラー。

エラーメッセージは"Vector iterators incompatible"でイテレータが不正、ということらしい。
eraseしたからv1.begin()がおかしくなっているってこと?
eraseした後でも
vector ::iterator Iter;
for ( Iter = v1.begin( ) ; Iter != v1.end( ) ; Iter++ )
cout << " " << *Iter;
みたいな典型的なコードはきちんと動くのに何がおかしいのか・・・?

調べてもわからなかったので結局一時コピー用の別のvectorを用意して★の行を

vector v2;
copy(v1.begin() + 2, v1.begin() + 4, back_inserter(v2)); //v2:"10, 20"
v1.insert(v1.begin(), v2.begin(), v2.end()); //v1:"10, 20, 30, 40, 10, 20"

の3行に置き換えることでエラーは回避できた。

うーん、とりあえずこれで動くものは作れたけど、よくわからない!
理由の分かる方、是非教えてください。

vectorの操作って多分いかにも基本的なことなんだろうになあ・・・。
続きを読む
プログラミング | トラックバック(0) | コメント(0) | page top↑
2009/11/12 (Thu) 23:51:24
今月末に、友人の結婚式二次会の幹事を引き受けることになった。
色々な意味で自分には似合わない役割だと思う。
だけど、自分に出来ることなら役に立ちたいし、その結婚する友人達に喜んでほしいと強く思う。
司会等を頼んだ人達も「役に立てるなら喜んで」と言ってくれたようだ。
皆にそう言わせるのは、お二人の人徳なのだなあ。
未分類 | トラックバック(0) | コメント(0) | page top↑
| ホーム |
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。