-
Cでキーワードを制限する
ここでは、Cのrestrictキーワードとは何かを確認します。C99バージョンで最初に導入されたrestrictキーワード。このrestrictキーワードが実際に何であるかを見てみましょう。 制限キーワードは、ポインターの型数量詞としてポインター宣言に使用されます。 このキーワードは新しい機能を追加しません。これを使用して、プログラマーはコンパイラーが実行できる最適化について通知できます。 制限キーワードがポインターpとともに使用される場合、それはコンパイラーに、ptrはこれが指すオブジェクトにアクセスする唯一の方法であることを通知します。したがって、コンパイラは追加のチェッ
-
Cでの構造体変数の操作
ここでは、構造体変数に対して実行できる操作のタイプを確認します。ここでは、基本的にstructに対して1つの操作を実行できます。操作は代入操作です。等価性チェックなどの他の操作は、スタックでは使用できません。 例 #include <stdio.h> typedef struct { //define a structure for complex objects int real, imag; }complex; void displayComplex(complex c){ printf("(%d + %di)\n&
-
C /C++で関数の名前を変更
Cライブラリ関数intrename(const char * old_filename、const char * new_filename) old_filenameによって参照されるファイル名が発生します new_filenameに変更されます 以下は、rename()関数の宣言です。 int rename(const char *old_filename, const char *new_filename) パラメータはold_filenameです −これは、名前を変更または移動するファイルの名前、 new_filenameを含むC文字列です。 −これはファイルの新しい名前を含む
-
C /C++で関数を削除します
Cライブラリ関数intremove(const char * filename) 指定されたファイル名を削除します アクセスできなくなります。 以下は、remove()関数の宣言です。 int remove(const char *filename) この関数はファイル名を取ります。これは、削除するファイルの名前を含むC文字列です。成功すると、ゼロが返されます。エラーの場合、-1が返され、errnoが適切に設定されます。 例 #include <stdio.h> #include <string.h> int main () { int r
-
C ++でコピーコンストラクターを実装するにはどうすればよいですか?
ここでは、コピーコンストラクタがC++でどのように実装されているかを確認します。議論する前に、コピーコンストラクターとは何かを知っておく必要があります。 コピーコンストラクタ 以前に作成された同じクラスのオブジェクトでオブジェクトを初期化することによってオブジェクトを作成するコンストラクターです。コピーコンストラクタは次の目的で使用されます- 同じタイプの別のオブジェクトから1つのオブジェクトを初期化します。 オブジェクトをコピーして、引数として関数に渡します。 オブジェクトをコピーして、関数から返します。 コピーコンストラクターがクラスで定義されていない場合は、コンパイラー自体が定義
-
入力がC++で数値かどうかを確認するにはどうすればよいですか?
ここでは、特定の入力が数値文字列であるか通常の文字列であるかを確認する方法を説明します。数値文字列は、0〜9の範囲のすべての文字を保持します。解決策は非常に単純です。各文字を1つずつ調べて、数値かどうかを確認します。数値の場合は次を指し、そうでない場合はfalse値を返します。 例 #include <iostream> using namespace std; bool isNumeric(string str) { for (int i = 0; i < str.length(); i++) if (is
-
C++での静的データメンバーの初期化
ここでは、C++で静的メンバー変数の初期化を初期化する方法を説明します。静的メンバー(関数または変数)をC++クラスに入れることができます。静的変数については、クラスを定義した後で初期化する必要があります。 初期化するには、クラス名、スコープ解決演算子、変数名の順に使用する必要があります。これで、値を割り当てることができます。 次のコードは、静的メンバーの初期化手法を示しています。 例 #include <iostream> using namespace std; class MyClass{ private:  
-
C ++で参照パラメータを使用する方法は?
ここでは、C++でいくつかの変数の参照を渡す方法を説明します。 「参照による呼び出し」と呼ばれることもあります。 関数に引数を渡す参照による呼び出しメソッドは、引数の参照を仮パラメーターにコピーします。関数内では、参照は呼び出しで使用される実際の引数にアクセスするために使用されます。これは、パラメータに加えられた変更が渡された引数に影響を与えることを意味します。 参照によって値を渡すために、引数参照は他の値と同じように関数に渡されます。したがって、次の関数swap()のように、関数パラメーターを参照型として宣言する必要があります。この関数は、引数が指す2つの整数変数の値を交換します。 例
-
C ++の無料関数とは何ですか?
C /C++ライブラリ関数voidfree(void * ptr) calloc、malloc、またはreallocの呼び出しによって以前に割り当てられたメモリの割り当てを解除します。以下はfree()関数の宣言です。 void free(void *ptr) この関数はポインタptrを取ります。これは、以前にmalloc、calloc、またはreallocで割り当て解除されるメモリブロックへのポインタです。 nullポインタが引数として渡された場合、アクションは発生しません。 例 #include <iostream> #include <cstdlib> #inc
-
C++11ランダムライブラリを使用して乱数を生成する
C ++ 11では、乱数を生成するためのランダムライブラリを取得できます。ここでは、random_deviceを1回使用して、mtという乱数ジェネレーターオブジェクトをシードしました。このrandom_deviceはmt19937よりも低速ですが、シードする必要はありません。オペレーティングシステムにランダムデータを要求します。 例 #include <random> #include <iostream> using namespace std; int main() { random_device rd; mt19
-
C ++でclock()関数を使用する方法
ここでは、C ++でclock()を使用する方法を説明します。このclock()は、time.hまたはctimeヘッダーファイルにあります。ここでは、このclock()関数を使用したプロセスの経過時間を確認します 経過時間を取得するには、開始時と終了時にclock()を使用して時間を取得し、値を減算して差を取得します。その後、差をCLOCK_PER_SEC(1秒あたりのクロックティック数)で割って、プロセッサ時間を取得します。 例 #include <iostream> #include <ctime> using namespace std; void take_e
-
C++11逆範囲ベースのforループ
逆の範囲ベースのforループを取得するために、ブーストライブラリを使用しました。このブーストライブラリは非常に人気があり、いくつかの強力な機能があります。 ここでは、いくつかの配列またはコンテナーを使用できます。次に、boost ::adapters ::reverse()を使用して、範囲ベースのforループを逆の順序で使用できます。 例 #include <list;> #include <iostream> #include <boost/range/adaptor/reversed.hpp> using namespace std; int main
-
一般的なラムダはC++14でどのように機能しますか?
C ++ 11では、ラムダが導入されました。ラムダは基本的にの一部であり、他の関数呼び出しステートメント内にネストできます。ラムダ式をautoキーワードと組み合わせることで、後で使用できます。 C ++ 14では、これらのラムダ式が改善されています。ここで、一般化されたラムダまたは一般的なラムダを取得できます。たとえば、整数を追加したり、数値を追加したり、文字列を連結したりできるラムダを作成する場合は、この一般化されたラムダを使用する必要があります。 ラムダ式の構文は次のようになります- [](auto x, auto y) { return x + y; } より良いアイデアを得るため
-
C ++で乱数を生成する方法は?
C++を使用して乱数を生成する方法を見てみましょう。ここでは、0からある値の範囲の乱数を生成しています。 (このプログラムでは、最大値は100です。) この操作を実行するために、srand()関数を使用しています。これはCライブラリにあります。関数voidsrand(unsigned int seed) 関数randで使用される乱数ジェネレーターをシードします 。 srand()の宣言は以下のようになります- void srand(unsigned int seed) シードと呼ばれるパラメータを取ります。これは、疑似乱数生成アルゴリズムによってシードとして使用される整数値です。この関数
-
コンストラクターでconstフィールドを初期化する方法は?
ここでは、コンストラクターを使用してconst型変数を初期化する方法を説明しますか? コンストラクターを使用してconst値を初期化するには、初期化リストを使用する必要があります。この初期化子リストは、クラスのデータメンバーを初期化するために使用されます。初期化されるメンバーのリストは、コロンの後のコンストラクターの後に表示されます。メンバーはコンマで区切られます。 例 #include <iostream> using namespace std; class MyClass { private: const int x; &
-
C++での辞書式順序の次の順列
ここでは、C++で文字列の辞書式順序で次の順列を生成する方法を説明します。辞書式順序の次の順列は、基本的にはより大きな順列です。たとえば、「ACB」の次は「BAC」になります。 「BBB」や「DCBA」など、辞書式順序で次の順列が存在しない場合もあります。 C ++では、next_permutation()というライブラリ関数を使用してこれを行うことができます。これは、アルゴリズムヘッダーファイルにあります。 例 #include <iostream> #include <algorithm> using namespace std; main() {
-
C++でオーバーロードできない関数
C ++では、関数をオーバーロードできます。ただし、オーバーロードが行われない場合もあります。このセクションでは、関数をオーバーロードできないさまざまなケースについて説明します。 関数のシグネチャが同じである場合、戻り値のタイプのみが異なるため、関数をオーバーロードすることはできません。 int my_func() { return 5; } char my_func() { return 'd'; } メンバー関数がクラス内で同じ名前と同じパラメーターリストを持っている場合、それらをオーバーロードすることはで
-
C ++のsize_tとintの違いは何ですか?
ここでは、C++でのsize_tとintの違いを確認します。標準を考えると、どちらもサイズ16ビットの整数です。 通常の64ビットシステムでは、size_tは64ビットになりますが、unsignedintは32ビットになります。したがって、それらを交換して使用することはできません。 標準的な推奨事項の1つは、size_tを最大でunsignedlongと同じ大きさにすることです。したがって、size_tの代わりにunsigned longを使用できると思われるかもしれませんが、64ビットシステムではunsigned longを使用できます。OSがWindowsの場合、32ビットになりますが
-
LinuxでC++のメモリ使用量を取得する方法
ここでは、C++を使用してLinux環境でメモリ使用量の統計を取得する方法を説明します。 「/proc/ self/stat」フォルダからすべての詳細を取得できます。ここでは、仮想メモリのステータスと常駐セットのサイズを取得しています。 例 #include <unistd.h> #include <ios> #include <iostream> #include <fstream> #include <string> using namespace std; void mem_usage(double& vm_usage
-
C++の整数に含まれる桁数の決定
ここでは、C++で整数に何桁あるかを確認する方法を説明します。最初に従来のルールを確認し、次に1つの簡単な方法を確認します。 最初の方法では、10で割って数を減らし、数が0になるまで数えます。 例 #include <iostream> using namespace std; int count_digit(int number) { int count = 0; while(number != 0) { number = number / 10; &nbs