In meinem Design habe ich eine Klasse, die meist eine Front für eine std::vector<OtherClass>
ist. Sollte ich in meiner Klassenschnittstelle einem Anrufer eine std::iterator
übergeben, einen Verweis auf die ganze vector
übergeben oder eine Reihe von Funktionen zur Verfügung stellen, um auf den Inhalt meiner vector
zuzugreifen? Oder anders vorgehen?Meine Klasse ist meistens eine Front für einen Container, sollte ich diese Tatsache enthüllen?
Weitere Informationen: Die Elemente im Container werden während der Initialisierung eingerichtet und nicht hinzugefügt, wenn das Programm normal ausgeführt wird. Die Clients meiner Klasse werden oft Abfragen durchführen und den Zustand der OtherClass
Elemente ändern, allerdings nicht in einer zeitkritischen Art und Weise.
Verwenden Sie freie Funktionen, die anstelle von Mitgliedern einer Wrapperklasse 'std :: vector' akzeptieren. – erenon
Dies ist sehr anwendungsspezifisch. Iteratoren funktionieren möglicherweise, aber was ist, wenn Sie ständig zum Vektor hinzufügen? Iteratoren würden ungültig gemacht, wenn der Vektor neu zuordnet. Bitte geben Sie uns weitere Informationen! – Conduit
Wenn 'OtherClass' konstant ist, warum nicht spezialisieren? – Nelfeal