Verwendung von 1D vs. 2D -Vektoren in C ++ Implementierung [geschlossen]C++

Programme in C++. Entwicklerforum
Anonymous
 Verwendung von 1D vs. 2D -Vektoren in C ++ Implementierung [geschlossen]

Post by Anonymous »

Nach einer umfangreichen Suche konnte ich keine klare Antwort auf das folgende Problem finden. Wenn einer die 1D vergleichen soll (

Code: Select all

vector
) vs 2d () Vektorimplementierung Es gibt offensichtlich eine Frage der Ausführungszeit usw. Diese Probleme wurden hier erörtert: 2D -Vektor gegen 1D -Vektor. Wenn beispielsweise zwei 2x2- und 2x2 -Matrizen multipliziert werden, zu einer 2x2 -Matrix. Man kann jedoch auch 1D -Matrizen verwenden, beispielsweise wie hier (ich versuche, eine ungeschickte, aber mathematische Notation zu verwenden; alle Dimensionen angemessen angemessen): < /p>

Code: Select all

[ 2D matrix, K rows x N columns ] * [ 1D column vector, N elements ] = [ 1D column vector, K elements ]

Grundsätzlich wird der 2D -Vektor mit 1D -Vektor multipliziert und führt zu 1D -Vektor. Eine andere Möglichkeit besteht darin, den 2D -dimensionalen Vektor wie folgt zu verwenden: < /p>

Code: Select all

[ 2D matrix, K rows x N columns ] * [ 2D matrix, N rows x 1 column ] = [ 2D matrix, K rows x 1 column ]

Es werden also nur 2D -Vektoren verwendet. Schließlich kann die Implementierung wie folgt funktionieren: < /p>

Code: Select all

[ 2D matrix, K rows x N columns ] * [ 2D matrix, N rows x 1 column ] = [ 1D column vector, K elements ]

wob Man kann eine Funktion schreiben, die einen beliebigen Typ des Vektors (1D oder 2D) übernimmt. Insgesamt ist das Ergebnis wichtig, wenn eine solche Funktion häufig im Programm verwendet werden soll. Grundsätzlich sind die Fragen die häufigste Praxis? Was ist im Prinzip im Programm im Prinzip besser zu verwenden? 2D -Vektoren sind mächtiger und doch langsamer. Was mich auch stört und meinen Code chaotisch macht

Code: Select all

vector vec(N, def_val);

Wann immer möglich, oder 2D -Vektoren, die (im Falle einer 1 -Dimension) tatsächlich zwei Möglichkeiten hätten:

Code: Select all

vector vec(N, vector(1, def_val));
vector vec(1, vector(N, def_val));
Vielen Dank für Kommentare zu diesem Thema.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post