-
C++での継承と友情
C ++では、友情は継承されません。つまり、1つの親クラスにいくつかのフレンド関数がある場合、子クラスはそれらをフレンドとして取得しません。 この例では、display()関数はMyBaseClassのフレンドですが、MyDerivedClassのフレンドではないため、エラーが生成されます。 display()は、MyBaseClassのプライベートメンバーにアクセスできます。 例 #include <iostream> using namespace std; class MyBaseClass { protected: &
-
C++の基本クラスでオーバーロードされたすべてのメソッドを非表示にする
C ++では、関数のオーバーロード手法を使用できます。ただし、一部の基本クラスにオーバーロードされた形式の1つのメソッド(同じ名前の異なる関数シグネチャ)があり、派生クラスがベース内に存在する関数の1つを再定義する場合、その関数のオーバーロードされたバージョンはすべて非表示になります。派生クラス。 明確なアイデアを得るために、1つの例を見てみましょう。 例 #include <iostream> using namespace std; class MyBaseClass { public: void my_fu
-
C ++のFesetround()およびfegetround()
ここでは、C ++のfesetround()メソッドとfegetround()メソッドを確認します。これらのメソッドは、cfenvライブラリにあります。 fesetround()メソッドは、指定された浮動小数点の丸め方向を現在の丸め方向に設定するために使用されます。これは、rint()、nearbyint()、およびC++の他のいくつかの丸め関数で使用されます。 構文は次のようになります- int fesetround(int round); 丸めは、FE_TONEAREST、FE_DOWNWARD、FE_UPWARDなどのいずれかになります。この関数は、必要な方法で丸め方向が正常に適用
-
Bツリーを使用してソートを実行するC++プログラム
ここでは、Bツリーを使用してソートされたシーケンスを取得する方法を説明します。 Bツリーはn-aryツリーです。ソートされたシーケンスを取得するには、Bツリーを作成し、それに番号を追加します。ここで、Bツリーは最大5つのノードを保持できます。ノードの数が増えた場合は、ノードを分割して新しいレベルを形成します。ノードは(多くても)5のような少数の要素を保持しているため、バブルソート手法を使用してノードをソートしています。要素の数が非常に少ないため、パフォーマンスにあまり影響を与えません。 ツリーをトラバースした後、さまざまなノードのすべての値を取得します。これらの要素は、降順ではない順序で並べ
-
無向グラフにオイラー閉路が含まれているかどうかを確認するC++プログラム
オイラー回路について知るために、オイラーパスについての考えがあります。オイラーパスはパスです。これにより、すべてのノードに1回だけアクセスできます。同じエッジを複数回使用できます。オイラー回路は、特殊なタイプのオイラーパスです。オイラーパスの開始頂点がそのパスの終了頂点にも接続されている場合。 回路を検出するには、次の条件に従う必要があります。 グラフを接続する必要があります。 無向グラフの頂点の次数が奇数でない場合、それはオイラー回路です。 入力 出力 グラフにはオイラー回路があります。 アルゴリズム traverse(u、visited) 入力開始ノードuと訪問済みノード
-
無向グラフにオイラーパスが含まれているかどうかを確認するC++プログラム
オイラーパスはパスです。これにより、すべてのノードに1回だけアクセスできます。同じエッジを複数回使用できます。オイラー回路は、特殊なタイプのオイラーパスです。オイラーパスの開始頂点がそのパスの終了頂点にも接続されている場合。 オイラーパスを検出するには、これらの条件に従う必要があります グラフを接続する必要があります。 無向グラフの頂点の次数が奇数でない場合、それはオイラー回路であり、これも1つのオイラーパスです。 ちょうど2つの頂点の次数が奇数の場合、それはオイラーパスです。 入力 出力 両方のグラフにオイラーパスがあります。 アルゴリズム traverse(u、visite
-
有向グラフにオイラーパスが含まれているかどうかを確認するC++プログラム
オイラーパスはパスです。これにより、すべてのエッジを1回だけ訪問できます。同じ頂点を複数回使用できます。この場合、オイラー経路もあるため、オイラー回路を含む1つのグラフも考慮されます。 有向グラフにオイラーパスがあるかどうかを確認するには、これらの条件を確認する必要があります- 単一の頂点anが1つ存在する必要があります ここで(in-degree + 1 =out_degree) 単一の頂点bnが1つ存在する必要があります ここで(in-degree =out_degree + 1) これらのケースのいずれかが失敗した場合、すべての頂点に(in-degree =out_degree)RE
-
C ++を使用して、Linuxで変更されたファイル、古いファイル、および新しく作成されたファイルを一覧表示します
ここでは、C++プログラムを使用してLinuxプラットフォームで変更されたファイルと古いファイルおよび新しく作成されたファイルを一覧表示する方法を説明します。 タスクは非常に簡単です。 Linuxシェルコマンドを使用して、ファイルを希望の順序で取得できます。 ls –lコマンドは、すべてのファイルをロングリスト形式で取得するために使用されます。ここでは、時間に基づいて並べ替えるオプションをさらに追加します。 (昇順と降順)。 –tコマンドは時間に基づいてソートするために使用され、–rを追加して順序を逆にすることができます。 コマンドは次のようになります: ls –lt ls &
-
与えられた文字列の順列の数を見つけるためのC++プログラム
文字列の文字をさまざまな順序で並べることができます。ここでは、特定の文字列から形成できる順列の数をカウントする方法を説明します。 1つの文字列が「abc」の場合はわかります。 3つの文字があります。 3つにアレンジできます! =6つの異なる方法。したがって、n文字の文字列は、nに配置できます。違う方法。しかし、aabのように同じ文字が複数回存在する場合、6つの順列はありません。 aba aab baa baa aab aba ここで、(1,6)、(2、5)、(3,4)は同じです。したがって、ここでは順列の数は3です。これは基本的に(n!)/(複数回発生しているす
-
C++のテンプレートとJavaのジェネリック
テンプレートはジェネリックプログラミングの基盤であり、特定のタイプに依存しない方法でコードを記述します。 テンプレートは、ジェネリッククラスまたは関数を作成するための青写真または式です。イテレータやアルゴリズムなどのライブラリコンテナはジェネリックプログラミングの例であり、テンプレートの概念を使用して開発されています。 ベクトルなど、各コンテナの定義は1つですが、ベクトルやベクトルなど、さまざまな種類のベクトルを定義できます。 サンプルコード #include <iostream> #include <string> using namespace std; tem
-
C++でのテンプレートの特殊化
C ++では、テンプレートを使用して一般化された関数とクラスを作成します。したがって、int、char、floatなどの任意のタイプのデータ、またはテンプレートを使用するユーザー定義データを使用できます。 このセクションでは、テンプレートの特殊化の使用方法を説明します。これで、さまざまなタイプのデータ用に一般化されたテンプレートを定義できます。そして、特別なタイプのデータのためのいくつかの特別なテンプレート関数。より良いアイデアを得るためにいくつかの例を見てみましょう。 サンプルコード #include<iostream> using namespace std; templat
-
行列式を使用して三角形の面積を計算するC++プログラム
このセクションでは、行列式を使用して2D座標空間で三角形の領域を見つける方法を説明します。この場合、スペースは2Dであると考えています。したがって、各ポイントをマトリックスに配置します。最初の列にx値を入れ、2番目の列にyを入れ、3番目の列として1を取ります。次に、それらの行列式を見つけます。三角形の面積は、行列式の値の半分になります。行列式が負の場合は、単純にその絶対値を取ります。 $$ Area \:=\:absolute \:of \ begin {pmatrix} \ frac {1} {2} \ begin {vmatrix} x_1 \:\:y_1 \:\:1 \\ x_2 \:
-
それ自体よりも小さい数の合計として数を書く方法の数を見つけるためのC++プログラム
このプログラムでは、1つの数をそれ自体よりも小さい数の合計で表すことができる方法の数を数えます。このプログラムは、指定された数のパーティションをカウントします。数値nを入力として受け取り、数値から始めて、一度に1を削除して数値を分割します。新しいパーティションが生成された場合は、カウンターを増やします。 アルゴリズム partitionCount(n) 入力:数値n 出力:パーティションの数 Begin Create array p of size n k := 0 count := -1 &n
-
整数の数字をズームするC++プログラム
このプログラムでは、C++で整数の数字をズームする方法を説明します。ズームとは、他の文字を使用して数字をより大きな形式で印刷することを意味します。ロジックは単純ですが、0から9まで1つずつ大きな数字を作成する必要があります。 サンプルコード #include <bits/stdc++.h> using namespace std; void print_zero() { for (int i=0; i<5; i++) { for (int j=0; j<5; j++) { &
-
競技プログラミングのためのC++トリック
ここでは、さまざまな分野で役立つC++プログラミング言語の優れたトリックをいくつか紹介します。競技プログラミングイベントに参加したい場合のように、これらのトリックはコードを書く時間を短縮するのに役立ちます。これらの例を1つずつ見ていきましょう。 %演算子を使用せずに、数値が奇数か偶数かを確認します。このトリックは簡単です。数値と1を使用してビット単位のAND演算を実行できます。結果がゼロ以外の場合、これは奇数です。それ以外の場合、これは偶数です。ロジックが単純すぎます。すべての奇数はLSbで1になります。したがって、ANDを1で実行すると、LSbを除くすべての文字がマスクされるため、目的の結
-
C ++プログラマーが知っておくべき一般的な未定義の動作は何ですか?
C ++では、いくつかの未定義の動作があります。これらは、C++でいくつかのタスクを実行することによって識別されます。そのような直接的な定義はありません。これらのいくつかのことは、さまざまな目的でC++を使用したいすべてのプログラマーに知っておく必要があります。 ここにいくつかのC++コードが表示されます。結果を推測してみてください。コードはいくつかのランタイムエラーを生成します。 ゼロ除算エラーは未定義です。 サンプルコード #include <iostream> using namespace std; int main() { int x = 1
-
instanceofに相当するC++
C ++には、1つのオブジェクトが何らかのクラスタイプのインスタンスであるかどうかをチェックする直接的なメソッドがありません。 Javaでは、この種の機能を利用できます。 C ++ 11では、is_base_of という1つのアイテムを見つけることができます。これにより、指定されたクラスが指定されたオブジェクトのベースであるかどうかがチェックされます。ただし、これは、指定されたクラスインスタンスがその関数を使用しているかどうかを検証しません。 「instanceof」に似た最も近い機能は、 dynamic_cast (expression)を使用して実現できます。 。これは、指定された値
-
C++でcoutを使用して正しい小数点数を印刷する
ここでは、いくつかの浮動小数点数を事前定義された小数点以下の桁数まで印刷する方法を説明します。 C ++では、coutでsetprecisionを使用して、この単語を実行できます。これは、C++のiomanipヘッダーファイルの下にあります。 サンプルコード #include <iostream> #include <iomanip> using namespace std; int main() { double x = 2.3654789d; cout << "Print up to 3 de
-
インライン変数はC++/ C ++ 17でどのように機能しますか?
C ++では、関数にinlineキーワードを使用できます。 C ++ 17バージョンでは、インライン変数の概念が導入されました。 インライン変数は、複数の変換単位で定義できます。また、単一定義規則に従います。これが複数回定義されている場合、コンパイラはそれらすべてを最終プログラムの1つのオブジェクトにマージします。 C ++(C ++ 17バージョンより前)では、静的変数の値をクラスで直接初期化することはできません。クラスの外でそれらを定義する必要があります。 サンプルコード #include<iostream> using namespace std; class MyCla
-
C++の隠された機能
ここでは、さまざまな分野で役立つC++プログラミング言語の優れた機能とコツをいくつか紹介します。競技プログラミングイベントに参加したい場合のように、これらのトリックはコードを書く時間を短縮するのに役立ちます。これらの例を1つずつ見ていきましょう。 %演算子を使用せずに、数値が奇数か偶数かを確認します。このトリックは簡単です。数値と1を使用してビット単位のAND演算を実行できます。結果がゼロ以外の場合、これは奇数です。それ以外の場合、これは偶数です。ロジックが単純すぎます。すべての奇数はLSbで1になります。したがって、ANDを1で実行すると、LSbを除くすべての文字がマスクされるため、目的の