Heim >Backend-Entwicklung >C++ >Wie kann ich basierend auf Benutzereingaben effizient ein dynamisches zweidimensionales Array in C erstellen?
Erstellen eines dynamischen zweidimensionalen Arrays basierend auf Benutzereingaben
In einigen Programmierszenarien kann es erforderlich sein, ein zweidimensionales Array zu erstellen Array mit einer Größe, die durch Benutzereingaben bestimmt wird. Während herkömmliche Arrays bei der Deklaration feste Dimensionen erfordern, bietet C Lösungen, um dieses Problem zu lösen.
Option 1: Verwenden eines Vektors von Vektoren
Ein Vektor von Vektoren, bezeichnet als vector
Option 2: Verwenden einer benutzerdefinierten Matrixklasse mit Überladungsoperator
Effizienter Der Ansatz umfasst die Erstellung einer benutzerdefinierten Matrixklasse, die die Speicherzuweisung verwaltet und einen überladenen Operator für den Zugriff auf Elemente bereitstellt. Dieser Ansatz gewährleistet eine effiziente Speicherverwaltung und schnellere Zugriffszeiten.
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]; } };
In dieser Implementierung behält die Matrixklasse die Spaltengröße und einen einzelnen zugrunde liegenden Vektor für die Datenspeicherung bei. Der überladene Operator() ermöglicht eine praktische, tiefgestellte Syntax für den Zugriff auf Elemente.
Beispielverwendung:
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
Fazit
In diesem Artikel wurden zwei Optionen zum Erstellen dynamischer zweidimensionaler Arrays untersucht, die eine detailliertere und leistungsfähigere Alternative zum herkömmlichen Vektor-von-Vektoren-Ansatz bieten. Die benutzerdefinierte Matrixklasse mit überladenem Operator bietet eine effiziente Speicherverwaltung und eine verbesserte Zugriffsgeschwindigkeit und ist somit eine geeignete Wahl für Szenarien, in denen die Leistung entscheidend ist.
Das obige ist der detaillierte Inhalt vonWie kann ich basierend auf Benutzereingaben effizient ein dynamisches zweidimensionales Array in C erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!