Ich habe diese Funktion:
void RegMatrix::MatrixInit(int numRow, int numCol, std::vector fill)
{
do something;
}
und ich möchte Folgendes senden:
MatrixInit(numRow, numCol, NULL);
wie kann ich NULL als Vektor übergeben?
Ich habe diese Funktion:
void RegMatrix::MatrixInit(int numRow, int numCol, std::vector fill)
{
do something;
}
und ich möchte Folgendes senden:
MatrixInit(numRow, numCol, NULL);
wie kann ich NULL als Vektor übergeben?
Um NULL
zu übergeben, müssen Sie Ihren Parameter ändern, um einen vector*
-Pointer zu akzeptieren, z. B .:
void RegMatrix::MatrixInit(int numRow, int numCol, std::vector *fill)
{
if (fill != NULL)
{
Mach etwas mit fill;
}
}
Wenn Sie einen Vektor übergeben müssen, würden Sie es dann so machen:
std::vector v;
MatrixInit(numRow, numCol, &v);
Wenn Sie einen Wert möchten, der einen speziellen Fall darstellt, können Sie eine statische Variable erstellen und dagegen testen.
static std::vector null_fill;
void RegMatrix::MatrixInit(int numRow, int numCol, const std::vector & fill = null_fill)
{
if (&fill == &null_fill)
// etwas Besonderes machen
else
// etwas machen;
}
Du kannst
in C++ keinen Null
-Vektor haben.
C++ ist eine Werttyp
-Sprache. Eine Variable vom Typ Vektor enthält den Wert des Vektors direkt, NICHT
eine Referenz auf einen Vektor wie in Java
.
MatrixInit(numRow,numCol,NULL);
Die obige Aussage wird einen Fehler geben: Kann NULL
(null) nicht in std::vector
umwandeln.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.