8/8
9時頃目が覚める。昨日借りた本とか読んで過ごした。独習C++、完全に舐めてたけど意外と難しかった。
#include <iostream> #include <ctime> using namespace std; class timer{ clock_t start; public: timer(); ~timer(); }; timer::timer(){ cout << "計測開始" << endl; start = clock(); } timer::~timer(){ clock_t end; end = clock(); cout << "経過時間: " << (end - start) / CLOCKS_PER_SEC << endl; } int main(){ timer ob; char c; cin >> c; return 0; }
コンストラクタとデストラクタで入力にかかった時間を測るコードを書いたのだが実行して入力にどれだけ時間をかけても0秒としか表示されない。CLOCK_PER_SECで割らないようにしてもクロック数が30や40としか出ない。一秒間に30クロックなわけあるか。
で、調べてみたらOSの仕様が原因のようだ。UNIX系OSではI/O処理はカーネルが行っていてその間プロセス時間は停止するとか。
AOJでICPC国内予選のB問題を解こうとしたけど3時間かけて解けなかった。弱い。
TOEIC対策が3日続いたので三日坊主になる権利を獲得した。今日は一日中部屋に引きこもっていた。