3.4 配列の最後の要素のアドレスを取得する。 公開日:2021年8月7日 C++関数・テンプレート集プログラミング技術情報 前回は最終要素のひとつ先のアドレスを取得しました。今回は配列の最終要素のアドレスを取得してみます。 この場合も、元ネタにあるようなマクロを使えば求めることができます。 [crayon-673ef43b873c929037 […] 続きを読む
3.3 配列の終端アドレスを取得する。 公開日:2021年8月7日 C++関数・テンプレート集プログラミング技術情報 ポインタを使って配列の要素を指すことはよくあります。ところが配列の範囲外であっても、ひとつだけ有効なアドレスが存在します。それが配列の最終要素のひとつ先を指すアドレスです。 C++プログラマーであれば、そういう最小要素の […] 続きを読む
3.2 配列を動的に確保する。 公開日:2021年8月6日 C++関数・テンプレート集プログラミング技術情報 C++は便利なもので、new演算を使用すれば、配列を動的に割り付けることが簡単にできます。ただし、どうしても細かいメモリ管理を自分で行わないといけない状況でなければ、スマートポインタを使うのが普通です。 C++03までで […] 続きを読む
3.1 配列の要素数を返す。 公開日:2021年8月4日 C++関数・テンプレート集プログラミング技術情報 配列の要素数を知りたいことはよくあります。残念ながらsizeof演算子では配列全体のバイト数しか取得できませんので、要素数を知るには、配列全体のバイト数を1要素のバイト数で割る必要があります。 Cでは、元ネタにある次のよ […] 続きを読む
3. 配列に関するテンプレート 更新日:2021年8月7日 公開日:2021年8月4日 C++関数・テンプレート集プログラミング技術情報 元ネタ 3.1 配列の要素数を返す。 3.2 配列を動的に確保する。 3.3 配列の終端アドレスを取得する。 3.4 配列の最後の要素のアドレスを取得する。 ↑ C++関数・テンプレート集 続きを読む
2.2 値が範囲内か? 公開日:2021年8月4日 C++関数・テンプレート集プログラミング技術情報 今回は、指定した値が最小値から最大値の範囲に収まっているかどうかを判定する関数を作っていきます。 ちょっと紛らわしいのですが、ひとつめは指定した値が最大値または最小値に等しい場合も真になるvalue_in_range_i […] 続きを読む
2.1 複数の値が昇順になっているか? 公開日:2021年8月3日 C++関数・テンプレート集プログラミング技術情報 次の関数テンプレートは、複数の数値が昇順になっているかどうかを判定します。 [crayon-673ef43b87b78334486262/] 大小比較を素直に<=演算子を使うのではなく、<演算子と!演算子の組 […] 続きを読む
1.16 無符号整数型のMSB抽出用マスク 公開日:2021年8月2日 C++関数・テンプレート集プログラミング技術情報 今回は指定した符合無し整数型のMSB(上位ビット)だけが1で残りが0の値を求めます。具体例を挙げると、16ビットの符合無し整数型の場合は0x8000が、32ビットの符合無し整数型の場合は0x80000000が取得できます […] 続きを読む
手作業での最適化 公開日:2021年8月1日 プログラミング技術情報 先日、ときどきは小学生~高校生レベルの話題を取り上げるという話をしましたが、今回もそういった内容です。 ネット上でいろいろな方の意見を見ていると、「今どきのコンピュータは高速で、コンパイラの最適化性能も上がっているので手 […] 続きを読む