-
C++での演算子の優先順位
演算子の優先順位は、式内の用語のグループ化を決定します。演算子の結合性は、括弧がない場合に同じ優先順位の演算子をグループ化する方法を決定するプロパティです。これは、式の評価方法に影響します。特定の演算子は他の演算子よりも優先されます。たとえば、乗算演算子は加算演算子よりも優先されます: たとえば、x =7 + 3 * 2;ここでは、演算子*の優先順位が+よりも高いため、xには20ではなく13が割り当てられます。したがって、最初に3 * 2が乗算され、次に7に加算されます。 ここでは、優先順位が最も高い演算子が表の上部に表示され、優先順位が最も低い演算子が下部に表示されます。式内では、優先順位
-
C++標準ライブラリヘッダーファイル
C ++標準ライブラリは、さまざまなタイプのライブラリで構成されています。以下は、これらすべてのタイプとその下のライブラリのリストです。 ユーティリティライブラリ −プログラム制御、動的メモリ割り当て、乱数、並べ替え、検索などの汎用ユーティリティ −信号管理用の関数とマクロ定数(例:SIGINTなど) −実行コンテキストに保存(およびジャンプ)するマクロ(および関数) −可変長引数リストの処理 −実行時型情報ユーティリティ − std ::bitsetのクラステンプレート −関数オブジェクト、関数呼び出し、バインド操作、および参照ラッパー −
-
C ++標準出力ストリーム(cout)とは何ですか?
std ::coutは、クラスostreamのオブジェクトであり、(char型の)狭い文字に向けられた標準出力ストリームを表します。 Cストリーム標準に対応します。標準出力ストリームは、環境によって決定される文字のデフォルトの宛先です。この宛先は、より標準的なオブジェクト(cerrやclogなど)と共有される場合があります。 クラスostreamのオブジェクトとして、文字は、挿入演算子(operator <<)を使用してフォーマットされたデータとして、またはwriteなどのメンバー関数を使用してフォーマットされていないデータとして書き込むことができます。オブジェクトは、外部リンケージと静的期
-
?->とは何ですか? C ++の演算子?
C++にはそのような演算子はありません。ラッパータイプを作成する必要がある場合があります。たとえば、unique_ptr、shared_ptr、optionalなどのタイプ。通常、これらの型には.getと呼ばれるアクセサメンバー関数がありますが、通常のポインタと同様に、含まれている値への直接アクセスをサポートする演算子→も提供します。 問題は、これらのタイプのいくつかが互いにネストされている場合があることです。これは、.getを複数回呼び出すか、値に達するまで多くの間接参照演算子を使用する必要があることを意味します。 このようなもの- wrapper<wrapper<std::
-
C ++の標準入力ストリーム(cin)
std ::cinは、クラスistreamのオブジェクトであり、(char型の)狭い文字に向けられた標準の入力ストリームを表します。 Cストリームstdinに対応します。標準の入力ストリームは、環境によって決定される文字のソースです。通常、キーボードやファイルなどの外部ソースからの入力と見なされます。 )を使用してフォーマットされたデータとして、またはreadなどのメンバー関数を使用してフォーマットされていないデータとして取得できます。オブジェクトは、外部リンケージと静的期間を使用してヘッダーで宣言されます。これは、プログラムの期間全体にわたって持続します。 このオブジェクトを使用して、標準入
-
C ++標準エラーストリーム(cerr)とは何ですか?
std ::cerrは、クラスostreamのオブジェクトであり、(char型の)狭い文字に向けられた標準エラーストリームを表します。 Cストリームstderrに対応します。標準エラーストリームは、環境によって決定される文字の宛先です。この宛先は、複数の標準オブジェクト(coutやclogなど)で共有される場合があります。 クラスostreamのオブジェクトとして、文字は、挿入演算子(operator <<)を使用してフォーマットされたデータとして、またはwriteなどのメンバー関数を使用してフォーマットされていないデータとして書き込むことができます。オブジェクトは、外部リンケージと静的期間
-
C ++での演算子のオーバーロードの基本的なルールとイディオムは何ですか?
C ++での演算子のオーバーロードに関しては、従う必要のある3つの基本的なルールがあります。そのようなすべてのルールと同様に、例外もあります。これらの3つのルールは-です 1。 演算子の意味が明確で議論の余地がない場合は常に、オーバーロードしないでください。代わりに、適切に選択された名前で関数を提供してください。基本的に、演算子をオーバーロードするための最初のそして最も重要なルールは、本質的に次のように述べています。 やらないでください。 それは奇妙に思えるかもしれませんが、演算子のオーバーロードが適切な場合はごくわずかです。その理由は、アプリケーションドメインでの演算子の使用がよく知られ
-
C ++のドット(。)演算子と->の違いは何ですか?
ドットと矢印の演算子は、どちらもC++でクラスのメンバーにアクセスするために使用されます。それらはさまざまなシナリオで使用されます。 C ++では、class、struct、またはunionとして宣言された型は、「クラス型」と見なされます。したがって、以下は3つすべてを指します。 a.bは、bがオブジェクトのメンバー(またはオブジェクトへの参照[1])である場合にのみ使用されます。したがって、a.bの場合、aは常にクラスの実際のオブジェクト(またはオブジェクトへの参照)になります。 a→bは基本的に(* a).bの省略表記です。つまり、aがオブジェクトへのポインタである場合、a→bはポイ
-
C ++のcin、cout、cerrストリームとは何ですか?
cin 、cout、cerr、 および詰まり 標準入力と標準出力を処理するストリームです。これらは、iostreamヘッダーファイルで定義されたストリームオブジェクトです。 std :: cin (char型の)狭い文字に向けられた標準の入力ストリームを表すクラスistreamのオブジェクトです。 Cストリームstdinに対応します。標準の入力ストリームは、環境によって決定される文字のソースです。通常、キーボードやファイルなどの外部ソースからの入力と見なされます。 std :: cout (char型の)狭い文字に向けられた標準出力ストリームを表すクラスostreamのオブジ
-
C ++で新しい演算子を使用してメモリを初期化する方法は?
C ++の新しい演算子は、メモリを割り当て、初期化しないように定義されています。新しい演算子を使用してint型の配列を割り当て、それらすべてをデフォルト値(つまり、intの場合は0)に初期化する場合は、次の構文を使用できます- 構文 new int[10](); 空の括弧を使用する必要があることに注意してください。たとえば、(0)やその他の式を使用することはできません。そのため、これはデフォルトの初期化にのみ役立ちます。 fill_n、memsetなどを使用して同じメモリを初期化する他の方法があり、これらを使用してオブジェクトをデフォルト以外の値に初期化できます。 例 #include&
-
C ++のcerrストリームとclogストリームの違いは何ですか?
cerrとclogはどちらもstderrストリームのオブジェクトです。以下はそれらの違いです。 coutオブジェクトについて読んで、より鮮明な画像を取得することもできます。 バッファリングされていない標準エラーストリーム(cerr) cerrは、エラーを出力するために使用される標準エラーストリームです。これは、 ostreamクラス。 cerrはバッファリングされていないため、エラーメッセージをすぐに表示する必要がある場合に使用されます。エラーメッセージを保存して後で表示するためのバッファはありません。 バッファリングされた標準エラーストリーム(クロッグ) これもostreamクラスのイン
-
C ++で「友達」を使用する必要があるのはいつですか?
クラスのフレンド関数はそのクラスのスコープ外で定義されていますが、クラスのすべてのプライベートメンバーと保護されたメンバーにアクセスする権利があります。フレンド関数のプロトタイプはクラス定義に表示されますが、フレンドはメンバー関数ではありません。 フレンドは、関数、関数テンプレート、メンバー関数、またはクラスまたはクラステンプレートにすることができます。この場合、クラス全体とそのすべてのメンバーがフレンドになります。 関数をクラスのフレンドとして宣言するには、次のように、クラス定義の関数プロトタイプの前にキーワードfriendを付けます- class Box { d
-
C ++のcerrストリームとcoutストリームの違いは何ですか?
coutはstdoutストリームのオブジェクトであり、cerrはstderrストリームのオブジェクトです。 out.txt)をリダイレクト(パイピング)しても、もう1つには影響しません。 通常、実際のプログラム出力にはstdoutを使用する必要がありますが、ユーザーが出力をファイルにリダイレクトした場合でも情報メッセージが印刷されるように、すべての情報とエラーメッセージをstderrに出力する必要があります。画面であり、出力ファイルではありません。
-
C++の++iとi++の違いは何ですか?
++のサフィックスバージョンとプレフィックスバージョンには大きな違いがあります。 プレフィックスバージョン(つまり、++ i)では、iの値がインクリメントされ、式の値はiの新しい値になります。したがって、基本的には、最初にインクリメントしてから、式に値を割り当てます。 postfixバージョン(つまり、i ++)では、iの値はインクリメントされますが、式の値はiの元の値です。したがって、基本的には、最初に式に値を割り当ててから、変数をインクリメントします。 例 理解を深めるために、いくつかのコードを見てみましょう- #include<iostream> using name
-
C ++のダブルアドレス演算子(&&)とは何ですか?
&&は、C++11標準で定義された新しい参照演算子です。 int &&aは、「a」がr値の参照であることを意味します。 &&は通常、関数のパラメーターを宣言するためにのみ使用されます。そして、それはr値式のみを取ります。 簡単に言えば、r値はメモリアドレスを持たない値です。例えば。数字の6と文字「v」はどちらもr値です。 int a、aはl値ですが、(a + 2)はr値です。 例 void foo(int&& a) { //Some magical code... } int main() { int b; &
-
C++でのendlと\nの比較
\ n改行を出力します(適切なプラットフォーム固有の表現であるため、Windowsでは \ r \ nを生成します)が、std::endlは同じで、ストリームをフラッシュします。通常、ストリームをすぐにフラッシュする必要はなく、パフォーマンスが低下するだけなので、ほとんどの場合、std::endlを使用する理由はありません。 ストリームを手動でフラッシュする場合-例:出力がタイムリーにユーザーに表示されることを期待しているためです。ストリームに「\n」を書き込む代わりに、std ::endlを使用する必要があります(分離された文字または文字列の一部として)。
-
C ++のcinストリームとcoutストリームの違いは何ですか?
cinは入力ストリームのオブジェクトであり、ファイルやコンソールなどの入力ストリームから入力を取得するために使用されます。coutは、出力を表示するために使用される出力ストリームのオブジェクトです。基本的に、cinは入力ステートメントであり、coutは出力ステートメントです。 )を使用し、coutは抽出演算子(<<)を使用します。 たとえば、変数my_int(cinを使用)のint値を読み取り、それを(coutを使用して)画面に出力する場合は、次のように記述します- 例 #include<iostream> int main() { int my_int;
-
C++での単純な算術演算子のサンプルプログラム
C++には5つの基本的な算術演算子があります。彼らは- 追加(+) 減算(-) 分割(/) 乗算(*) モジュロ(%) これらの演算子は、C++の任意の算術演算を操作できます。例を見てみましょう- 例 #include <iostream> using namespace std; main() { int a = 21; int b = 10; int c ; c = a + b; cout << "Line 1 - Valu
-
C++の複合代入演算子
複合代入演算子は、e1 op =e2の形式で指定されます。ここで、e1はconst型ではなく変更可能なl値であり、e2は次のいずれかです- 算術型 opが+または–の場合のポインタ e1 op=e2フォームはe1=e1 op e2として動作しますが、e1は1回だけ評価されます。 以下は、C++の複合代入演算子です- 演算子 説明 * = 第1オペランドの値に第2オペランドの値を掛けます。結果を最初のオペランドで指定されたオブジェクトに格納します。 / = 第1オペランドの値を第2オペランドの値で除算します。結果を最初のオペランドで指定されたオブジェ
-
++のインクリメントとデクリメント-C++の演算子
インクリメント演算子++はオペランドに1を加算し、デクリメント演算子--はオペランドから1を減算します。だから、 x = x+1; is the same as x++; 同様に、 x = x-1; is the same as x--;と同じです インクリメント演算子とデクリメント演算子はどちらも、オペランドの前(プレフィックス)または後(ポストフィックス)のいずれかになります。 x = x+1; can be written as ++x; 式の一部としてインクリメントまたはデクリメントを使用する場合、接頭辞と接尾辞の形式に重要な違いがあることに注意してください。プレフィックス形式を