自前のクラスでsortをする自前のクラスでsortをするとき、自前のクラスにてオペレータ<を定義してあげないといけない。sortは、オペレータ<を用いてソートを行うからである。例の如く、PKUからの出題。Shiftsという問題。あーこんな問題TopCoderでもあったなー。ソートしてgreedyで解きます。0;}Shiftというクラスでオペレータを定義していますね。このようにクラスの中で<を定義してあげないとsortは使えません。ここで注意しないといけないのはconstってちゃんと書かないといけない(※引数部と関数部に2ヵ所書かないとダメです。constを書かないとoperatorとして認識してくれないようで、コンパイラエラーになってしまいます。constって2つあるけどどう違うの?引数のconstは引数の値を関数内で変更しないっていう意味です。引数が、参照渡しになっているため、関数内で値を書きかえることができるんですね。値が変えられると困るのでconstって書いています。そもそも何故引数は、参照渡しなの?んーいい質問です。doubleなど基本的な型)の場合は、関数に値をするのが基本ですが、構造体やクラスを渡すときはポインタ渡しや参照渡しを行います。これはメモリ量を節約するためです。(クラスそのものを渡すより、クラスのアドレスを渡した方がメモリが節約できますよね!)で、まー大体こんな風に使い分けるのが基本です。参照渡し(constを付けます。)で、関数についているconst。これは、メンバ関数内でオブジェクトのメンバ変数を変更しないということを意味しています。constがついた関数からはconstがついていない関数を呼び出すことができません。(呼び出せてしまうと、constじゃない関数の中で値を変えることができてしまい、constの意味がなくなりますね。)つまり、このconstは、大小を比較する際に、自分のメンバ変数を変えることを禁止しているんですね。変数部のconstは、比較相手のメンバ変数の値が変わるのを防ぐ。関数部のconstは、自身のメンバ変数の値が変わるのを防ぐ。確かに、大小比較するんだから、値が変わらないことを担保するのは当然と言えば当然。Postsmemset()とmemcpy()恥ずかしながら、Cのmemset()とmemcpy()を今まで使ったことがなかった。みたいな話を聞いたことがあったので、「あーじゃ要らない機能なんだー。editorialに投稿された解答がmems...便利なPythonライブラリ(5)retryデコレータつけるだけで、リトライしてくれるという便利ライブラリ。失敗するかもしれない不安定な関数に@retryをつけると成功するまで実行してくれる。ret...S3のファイルを一般公開するAWSのS3のファイルを一般公開する方法について説明します。2つの場合に分けて説明します。本番中ゴリ押し解を思いつくには思いついたのだが、C++でマルチスレッドの処理を書いたことが無くて、ごにょごにょやってるうちにタイムアップとなってしまった。C++...C#入門(9)Action、Func、Predicateの違いAction、Func、Predicateについて簡単に整理しておく。メソッドへのDelegate。メソッドへのDelegate。スライド区間に対するクエリ処理の種類とそれに対するアルゴリズムをいくつか紹介します。「スライド区間」の定義ですが、窓関数のようなものを想像してください。まではコンピュータの力を使って正多面体をt色以下で塗るパターン数を数えていました。今回は手計算で計算してみようと思います。そのためにはまず回転を表す対称群をうまく列挙するために回転軸について考える必要があります。見聞きする木の用語を整理しておく。節点vから最も離れた節点をwとする。w)の長さをvの離心数と呼ぶ。記号で表すときは、ε(v)と書く。使って遊んでみました。いった便利な機能を提供してくれるテストフレームワークです。repor...キャッシュヒット率の測定perfというツールを使ってキャッシュヒット率を測定してみた。キャッシュの影響なんてたかが知れていると甘くみていたら、痛い目るので要注意。知らない用語がちらほらあったので、簡単にまとめておく。(13)自前のクラスでsortをする四捨五入をしよう。