ユーザー入力に基づいた動的 2 次元配列の作成
一部のプログラミング シナリオでは、2 次元配列を作成する必要がある場合があります。ユーザー入力によって決定されるサイズの配列。従来の配列では宣言時に固定次元が必要ですが、C ではこの問題に対処するソリューションが提供されています。
オプション 1: ベクトルのベクトルを使用する
ベクトルのベクトル。次のように表されます。 Vector
オプション 2: カスタム行列クラスとオーバーロード演算子を使用する
より効率的このアプローチには、メモリ割り当てを処理し、要素にアクセスするためのオーバーロードされた演算子を提供するカスタム行列クラスを作成することが含まれます。このアプローチにより、効率的なメモリ管理と高速なアクセス時間が保証されます。
template <class T> class matrix { int columns_; std::vector<T> data; public: matrix(int columns, int rows) : columns_(columns), data(columns * rows) {} T &operator()(int column, int row) { return data[row * columns_ + column]; } };
この実装では、行列クラスはデータ ストレージの列サイズと単一の基礎となるベクトルを維持します。オーバーロードされた Operator() により、要素にアクセスするための添字のような便利な構文が可能になります。
使用例:
matrix<int> myMatrix(5, 5); // Declare a 5x5 matrix myMatrix(0, 0) = 10; // Set the (0, 0) element to 10 std::cout << myMatrix(0, 0); // Output the (0, 0) element, which should be 10
結論
この記事では、動的 2 次元配列を作成するための 2 つのオプションを検討し、より詳細でパフォーマンスの高い代替手段を提供します。従来のベクトルのベクトルによるアプローチです。オーバーロードされた演算子を含むカスタム行列クラスは、効率的なメモリ管理とアクセス速度の向上を提供するため、パフォーマンスが重要なシナリオに適した選択肢となります。
以上がユーザー入力に基づいて C で動的 2 次元配列を効率的に作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。