C++

 Computer >> コンピューター >  >> プログラミング >> C++
  1. C++ STLのmultiset::cbegin()およびcend()関数の使い方を徹底解説

    本記事では、C++ STLにおける multiset::cbegin() および multiset::cend() 関数の動作、構文、そして具体的な使用例について詳しく解説します。C++ STLにおけるmultisetとは?multiset(マルチセット)は、setコンテナとよく似たコンテナです。setと同様に、値をキーの形式で特定の順序に従って格納します。multisetでも、setと同じく値はキーとして識別されます。setとの最大の違いは、setが重複しない一意なキーのみを持つのに対し、multisetでは同じキー値を複数持つことができる点です。multisetのキーは、二分探索木(バイナ

  2. 【C++】g++のポリシーベースデータ構造とは?特徴と使い方を解説

    g++コンパイラは、Linux環境で広く利用されているGNUプロジェクトのC++コンパイラです。g++には、C++標準ライブラリには存在しない特殊なデータ構造のサポートが追加されています。これらは「ポリシーベースデータ構造」と呼ばれ、競技プログラミングや高効率なアルゴリズム実装の場面で特に重宝します。ポリシーベースデータ構造は、C++標準ライブラリ(std)が提供する標準的なデータ構造と比べて、より高いパフォーマンス・意味的な安全性・柔軟性を実現できる点が大きな特徴です。ヘッダファイルの読み込みこれらのデータ構造をプログラムで利用するには、冒頭で次の記述を追加します。#include <

  3. C++ STLにおけるmultisetのcrbegin()とcrend()関数の使い方を徹底解説

    本記事では、C++ STLにおける multiset::crbegin() 関数と multiset::crend() 関数の動作、構文、そして具体的な使用例について詳しく解説します。 C++ STLにおけるmultisetとは? multisetは、setコンテナとよく似た連想コンテナです。setと同様に、値をキーとして格納し、常に特定の順序(既定では昇順)を維持します。 multisetにおいても、値はsetと同じくキーとして識別されます。両者の最大の違いは、setが重複しない一意なキーのみを持つのに対し、multisetでは同じ値のキーを複数個格納できるという点です。 また、multis

  4. C++で警察官が泥棒を捕まえる問題を貪欲法で解く方法

    問題概要 この問題では、n個の要素からなる配列が与えられます。配列の各要素には「P(警察官)」または「T(泥棒)」のいずれかが格納されており、1人の警察官は1人の泥棒を捕まえることができます。ただし、警察官は自分の位置から距離k以内にいる泥棒しか逮捕できません。この制約のもとで、警察官たちが捕まえられる泥棒の最大数を求めるのが目的です。 入出力例 入力 − array = {T, P, P, P, T, T, T} K = 2. 出力 − 3 説明 − ここでは、各警察官がそれぞれ泥棒を1人ずつ捕まえます。 インデックス1のPが、インデックス0のTを逮捕。 インデックス2のPが、インデック

  5. C++ STLのmultiset::equal_range()関数を徹底解説!構文・使い方・実行例

    本記事では、C++ STLにおける multiset::equal_range() 関数の仕組み、構文、そして具体的な使用例について詳しく解説します。C++ STLにおけるmultisetとは?multiset(マルチセット)は、setコンテナとよく似た連想コンテナです。setと同様に、値をキーとして格納し、常にソートされた順序で管理します。multisetでも値はキーとして識別されます。multisetとsetの最大の違いは、setが重複しない一意なキーのみを持つのに対し、multisetでは同じキー(同じ値)を複数格納できるという点です。また、multisetは内部的に二分探索木として実装

  6. C++で複素数を扱うpolar()関数の使い方

    C++のpolar()関数は、複素数の極形式(大きさと位相角)から複素数を生成するための関数です。数学的には、指定された大きさ(絶対値)と偏角をもとに、mag × cos(phase) + i × mag × sin(phase) という形の複素数を返します。この関数はC++の <complex> ヘッダーファイルで定義されており、複素数の大きさと位相角を引数として受け取り、それらの値に対応する複素数オブジェクトを生成します。構文polar(mag, phase);パラメータ − 生成したい複素数の「大きさ(mag)」と「位相角(phase)」の2つの値を引数として受け取ります。戻

  7. C++の任意ポインタ(arbitrary pointer)を使って連結リスト内の次に大きい値のノードを指す方法

    この問題では、「値(data)」「nextポインタ」「任意ポインタ(arbit)」の3つの要素を持つ連結リストが与えられます。求められているのは、各ノードの任意ポインタが、リスト内でそのノードより大きい値の中で最も近いもの(=次に大きい値)を指すようにすることです。問題の例例を見て理解しましょう。たとえば、8 → 12 → 41 → 54 → 76 のように、各ノードの任意ポインタが「自分より大きい次の要素」を順に指すようになります。つまり、8は12を、12は41を、41は54を、54は76を指します。解決アプローチ:マージソートを活用するこの問題を効率的に解くには、マージソート(merge

  8. C++ STLのcount_if()関数とは?使い方と実行例をわかりやすく解説

    本記事では、C++ STLにおけるstd::count_if()関数の仕組み、構文、そして具体的な使用例について詳しく解説します。 std::count_if()とは? std::count_if()は、C++ STLに標準で用意されている関数で、<algorithm>ヘッダーファイル内で定義されています。この関数は、指定された範囲内の要素のうち、特定の条件を満たす要素の個数を取得するために使用されます。戻り値は整数型で、条件を満たした要素の総数が返されます。 この関数は、単に範囲内を反復処理するだけでなく、各要素に対して条件式が真であるかを順番に評価し、条件が真になった回数をカ

  9. C++で学ぶコンピュータグラフィックスのポイントクリッピングアルゴリズム

    コンピュータグラフィックスにおけるクリッピングとはコンピュータグラフィックスは、コンピュータの画面上に画像や図形を描画する技術です。ここでは、画面を2次元座標系として扱います。この座標系は左上の原点 (0,0) から始まり、右下に向かって広がります。ビューイングプレーン(視野面)とは、コンピュータグラフィックスにおいて図形を描画するために定義された領域のことであり、画面上の可視範囲を指します。クリッピングとは、このビューイングプレーンの外側にある点や図形を取り除く処理のことです。クリッピングを理解するために、具体例を見てみましょう。上図の例では、青色で示されたビューイングプレーンの外側にある点

  10. C++のcmathヘッダーで誤差関数(erf)を使って確率を求める方法

    変数が与えられ、その変数の確率をC++のSTLで利用できる誤差関数を使って求めるのが本記事のテーマです。この関数はC++のcmathヘッダーファイルに含まれており、C++11以降では標準機能としてstd::erfが提供されています。 誤差関数とは? 数学における誤差関数は「ガウス誤差関数」とも呼ばれ、erf()で表されます。確率論、統計学、偏微分方程式などの分野で、発生しうる誤差を計算するために用いられる特殊関数です。定義は次のとおりです。 誤差関数には、密接に関連する以下の2つの関数があります。 相補誤差関数: erfc x = 1 - erf x と定義されます。 虚数誤差関数: erf

  11. C++で連結リストの各ノードの右側にある最大値ノードを任意ポインタに設定する方法

    この記事では、値(data)、次ノードへのポインタ(next)、さらに任意ポインタ(arbitrary)を持つ連結リストが与えられたとき、各ノードの任意ポインタを「そのノードより右側に存在する最大値のノード」に向けるアルゴリズムについて解説します。 問題の概要 連結リストの各ノードには通常のnextポインタに加えて、もう一つのポインタ(任意ポインタ)があります。この任意ポインタを、自分より右側にあるノードの中で値が最大のものを指すように書き換えるのが今回のタスクです。 以下の例で問題を理解しましょう。 図のように、各ノードの任意ポインタは、その右側に存在する最大の要素を指しています。 12

  12. C++の複素数用std::exp()関数の使い方とサンプルコード解説

    この記事では、C++ STLに含まれる複素数用のstd::exp()関数について、その仕組み・構文・具体的な使用例を詳しく解説します。std::exp()とは?複素数用のstd::exp()関数は、C++標準ライブラリに組み込まれた関数で、<complex>ヘッダーファイル内で定義されています。これは、<cmath>ヘッダーで定義されている通常のexp()関数(入力値の指数値、すなわち自然対数の底eのべき乗を求める関数)と同じ役割を担うもので、複素数を引数として受け取り、その指数関数値を複素数として返します。数学的にはオイラーの公式「e^(iθ) = cosθ + i

  13. C++ STLのstd::exp2()関数の使い方と使用例

    本記事では、C++ STLに用意されているstd::exp2()関数について、その仕組み、構文、そして具体的な使用例をわかりやすく解説します。 std::exp2()とは std::exp2()は、C++標準ライブラリに組み込まれた数学関数の一つで、<cmath>ヘッダー(または<ctgmath>ヘッダー)で定義されています。この関数は、引数として与えられた数値を指数とする「底が2の指数関数(二進指数関数)」、すなわち 2n を計算するために使用されます。 戻り値の型は、引数の型に対応して double、float、long double のいずれかとなります。 構

  14. C++のlocaltime()関数とは?使い方と実行例をわかりやすく解説

    この記事では、C++ STLにおけるlocaltime()関数の動作、構文、および具体的な使用例について詳しく解説します。 localtime()とは? localtime()関数は、C++ STLに標準で組み込まれている関数の一つで、<ctime>ヘッダーファイル内で定義されています。この関数は、time_t型で表された時刻の値を、地域ごとのローカル時刻(現地時間)に変換するために使用されます。 具体的には、引数timerが参照する値をもとにtm構造体の各メンバーに値を設定し、その結果をシステムに設定されているローカルタイムゾーンに対応した時刻として取得します。 構文 local

  15. C++のvalarray::max()関数とは?構文と使い方を実例付きで解説

    本記事では、C++標準テンプレートライブラリ(STL)に含まれる valarray::max() 関数の仕組み、構文、そして具体的な使用例について詳しく解説します。valarrayとは?std::valarray は、数値の配列を表現・操作するためのクラステンプレートです。要素ごとの数学演算(要素単位の加算・乗算など)を効率的にサポートしている点が特徴です。valarray::max()とは?std::valarray::max() 関数は、C++ STLに組み込まれているメンバ関数で、<valarray> ヘッダーファイル内で定義されています。この関数を呼び出すと、valarra

  16. C++のnorm()関数とは?使い方と具体例をわかりやすく解説

    本記事では、C++ STLにおけるnorm()関数の仕組み、構文、そして具体的な使用例について詳しく解説します。norm()関数とは?norm()関数は、C++ STLに標準で用意されている組み込み関数の一つで、<complex>ヘッダーファイル内で定義されています。この関数は、複素数のノルム(norm)値を取得するために使用されます。複素数のノルム値とは、その数の絶対値(大きさ)を二乗したものを指します。つまり、この関数は複素数の実部と虚部を含めた大きさの二乗を計算する役割を果たします。構文double norm(ArithmeticType num);パラメータこの関数は以下の

  17. C++のnearbyint()関数とは?使い方と実行例をわかりやすく解説

    本記事では、C++ STLに用意されているnearbyint()関数の仕組み、構文、そして具体的な使用例について詳しく解説します。nearbyint()関数とは?nearbyint()は、C++標準ライブラリ(STL)に組み込まれている数学関数の一つで、<cmath>ヘッダーファイルで定義されています。この関数は、引数として渡された値を、現在設定されている丸めモードに従って最も近い整数値へと丸めた結果を返します。丸めの方式はfegetround()で取得できる現在の丸めモードによって決まります。デフォルトでは「偶数への丸め(銀行家の丸め)」が適用されるため、たとえば2.5は2に、3

  18. C++のscalbn()関数とは?使い方とサンプルコードをわかりやすく解説

    本記事では、C++ STLで提供されている scalbn() 関数の仕組み、構文、そして具体的な使用例について詳しく解説します。scalbn()関数とは?scalbn() はC++ STLに標準で組み込まれた数学関数の一つで、<cmath> ヘッダーファイル内で定義されています。この関数は、仮数(significand)を浮動小数点基数のべき乗を使って効率的にスケーリング(拡大・縮小)するために使用されます。ここでいう仮数とは、浮動小数点数を構成する有効数字の部分を指します。指数の解釈によって、仮数は整数としても小数としても表現できます。scalbn() 関数は、「num × FL

  19. 【C++ STL】mktime()関数の使い方を徹底解説!構文・パラメータ・実例つき

    本記事では、C++ STLにおけるmktime()関数の仕組み、構文、そして具体的な使用例について詳しく解説します。mktime()関数とは?mktime()関数は、C++ STLに標準で用意されている組み込み関数の一つで、<ctime>ヘッダーファイル内で定義されています。この関数の主な役割は、ローカル時間を表すtm構造体を、time_t型の時刻オブジェクトへ変換することです。動作としては、時刻の入力をマシンのローカルタイムゾーンに変換するlocaltime()関数とちょうど逆の処理を行うものであり、両者は対になる関係といえます。さらに便利な点として、tm構造体の各メンバーの値が

  20. C++のquick_exit()関数とは?使い方とサンプルコードを解説

    本記事では、C++標準ライブラリ(STL)におけるquick_exit()関数の動作、構文、そして具体的な使用例について詳しく解説します。quick_exit()とは?quick_exit()は、C++標準ライブラリに組み込まれている関数で、<cstdlib>ヘッダーファイル内で定義されています。この関数は、呼び出し元のプロセスを迅速に終了させるために使用されます。つまり、リソースのクリーンアップ処理を行わずにプロセスを即座に終了させます。quick_exit()による終了は「通常の終了」として扱われますが、オブジェクトのデストラクタが呼び出されないなど、追加的な後処理は実行されま

Total 5990 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:159/300  20-コンピューター/Page Goto:1 153 154 155 156 157 158 159 160 161 162 163 164 165