I Template-Klasse haben, die wie folgt aussieht:C++: Der Zugang Klasse Mitglied von Mitglied ähnlichen Verfahren
template<int n=3> struct Vec{
double Values[n];
};
Natürlich habe ich Elemente dieser Klasse direkt oder durch die Methode zugreifen können, zum Beispiel:
double& x(){
return Values[0];
}
Aber wenn ich möchte mehr intuitiven Code machen: statt
Vec<3> v;
v.x() = 5.2;
würde ich gerne Benutzer lassen, tut es durch: v.x = 5.2
. Es ist nicht nur eine Laune. Wenn ich eine existierende Bibliothek habe, die einfache Vektorstrukturen eines Formulars wie struct{double x,y,z;}
verwendet, könnte ich nach der Methode der Duck-Typisierung meine Template-Klasse erstellen, um in diesem Fall effizient zu sein. Natürlich könnte ich (wahrscheinlich bin ich mir nicht sicher) diese vordefinierte Struktur von referenes - wie: struct{double &x=v.Values[0], &y=v.Values[1], &z=v.Values[2];}
- an diese Bibliothek weitergeben, aber ich fürchte, das ist nicht der einfachste Weg, um ein Ziel zu erreichen.
Ah - natürlich könnte ich Referenz-Parameter in meiner Struktur hinzufügen, aber dies würde in der Größe der Elemente zu erhöhen.
warum glauben Sie, dass ein Array mehr effizient, dass diskreter Zugang variabel sein? –
Wenn Sie eine Methode haben, um verschiedene Anzahl von diskreten Variablen zu erstellen, möchte ich es wissen :) – Ch3shire
Vielleicht suchen Sie ein std :: tuple <...> wie Vorlage. Sie können Tupel-Elemente mit dem std :: get < INDEX > abrufen und sie mit std :: tie usw. festlegen? – JimmyNJ