C/C++
行列の計算を今までEigenにやらせてたんだけど、やっぱり自分で作るかーと思ったのでここ数日行列クラスを実装する作業に明け暮れてた。こんな感じ。 // TEMPLATE CLASS Matrix template <class Ty_> class Matrix { // define my matrix class std::vector<std::vector<Ty_>> mat_; publ</std::vector<ty_></class>…
前回も登場した同僚のC#erと仮想関数の使い方について話していたとき、主にvirtualの意味についてこんがらがってきたので復習することにした。このあたりはC++を勉強する初学者が最も躓きやすいところだよなぁとつくづく思う。 さて、これから女の子の名前を…
先日同僚のC#erのコード見てたら、 public override void func() { // code } こんな風にメンバ関数の定義を書いていた。 その時は、へーC#にはoverrideキーワードなんてあるんだーと思うだけだったけど、実はC++にもあるらしい。使い方はこんな感じ。 class…
昨日なんか書くネタあるかなーって、C++のことを色々調べてたらこんなコード見つけた。 auto add(const int x, const int y) -> int { return x + y; } ??? なんやこのコード……。 まあ予想はつくけど、戻り値の型を明示的にするための演算子のようだ。 au…
qiita.comスマートポインタについての知識がないC++使いは嫌らしいので猛省して勉強することとする。 スマートポインタ概要 ポインタを用いてメモリを動的確保をする場合、解放のし忘れが無いようにコーディングしなければならないことは周知の事実である。 …
多分知ってる人からしたら今更な内容。 今までコンストラクタでメンバ変数を初期化する際はこんなコードを書いてた。 MyClass(const int value) { value_ = value; } これと同じことが下のコードでもできる。 MyClass(const int value) : value_(value) {} …
C++11を使ったマルチスレッドプログラミング。モンテカルロ法で円周率を求める。 モンテカルロ法 - Wikipedia 一番簡単に非同期処理ができるstd::threadで実行してもいいけど、こちらは戻り値を返せない。 一応、結果を入れたい変数を参照渡しするとか、結果…
どっちでもいいってことで決着はついてるけど暇だし蒸し返してみる。 ちなみに僕は「int* a」派。 教科書は「int *a」が多い気がする。僕がC++を勉強した独習C++も「int *a」だった。独習C++ 第4版作者: ハーバート・シルト,神林靖,トップスタジオ出版社/メ…