2013-08-01から1ヶ月間の記事一覧

C++のconstの復習

C++

よくわからなくなるのでメモ。 ポインタ変数につけるconst ポインタ変数に対してconstをつけるときは、場所によって効果が違う。 #include <iostream> using namespace std; int main(){ int a = 100; int b = 100; // ポインタが指す先を変更できない const int* p = </iostream>…

C++11のunordered_setと、setとの所要時間を比較する

C++

C++11の標準ライブラリで新たに加わったunordered_setの練習として、従来のsetとの速度比較を行ってみる。unrodered_setは、setと異なり、挿入した数字をソートせずに保存する。この性質はPythonのDictionaryやPerlのHashと同じ(はず)。単に出現した値を記…

C++11で、chronoライブラリを使って時間を計測する

C++

C++11で新しく加わったchronoライブラリを使うと、簡単に経過時間が計測できる。もう環境依存のコードを書かなくてよくなるなら嬉しい。サンプルコードは以下。シンプルなのですぐわかると思う。 #include <iostream> #include <chrono> int main() { auto start = std::chrono</chrono></iostream>…

今すぐに使いたいC++11の新機能

C++

最近導入の敷居が下がってきたC++11に興味が湧いてきた。C++11の新機能を眺めてみると、正直半分くらいの項目はよく理解できないのだが、いくつかの項目は"Better C++"としていますぐにでも使いたいものであった。今回は導入の効果が高そうなC++11の新機能を…

MacのClangでC++11を試すには clang++ -std=c++11 -stdlib=libc++ としてみよう

C++

MacのClangもアップデートできたので早速C++11を試す。unordered_setという機能を使ってみようと、main.cppに #include <unordered_set> ...と書き $ clang++ -std=c++11 main.cppとビルドを試みるも、以下のエラーが出てコンパイルに失敗。ヘッダファイルが見つからないら</unordered_set>…

MacのClangを更新

mac

MacにインストールされているClangのバージョンを更新した。もともと入っていたClangのバージョンは以下の通り。 $ clang++ --version Apple clang version 2.1 (tags/Apple/clang-163.7.1) (based on LLVM 3.0svn) Target: x86_64-apple-darwin11.4.2 Threa…

C/C++のポインタと参照、右寄せか左寄せか

C++

CやC++でポインタ変数を宣言するとき、次の2通りの書き方はどちらもコンパイルが通る。 int *p1; // 右寄せ int* p2; // 左寄せ 自分は右寄せで書くことが多い。理由は特にない。最初にCを勉強するときに使った教科書が右寄せのスタイルをとっていたから、と…