Zum Beispiel habe ich einen Container in ähnlicher Weise wie definieren könnte:Wann ist es ausreichend, const_iterator als konstanten Iterator zu deklarieren?
template <typename T>
class Example
{
public:
using value_type = T;
using iterator = value_type*;
using const_iterator = const iterator;
//etc
};
Allerdings ist es in Ordnung, das mit einem benutzerdefinierten Iterator zu tun?
template<typename T>
class Example
{
public:
using value_type = T;
/*friend?*/ class iterator;
using const_iterator = const iterator; //is this okay?
//etc
};
Eine ausführliche Erklärung würde geschätzt werden.
Also, im zweiten Fall, das bedeutet, dass die const iterator können nur auf einen bestimmten Ort? – AldenB
@AldenB Korrekt, Sie können den Iterator nicht ändern, sodass Sie ihn nicht anderswo zeigen können. Aber Sie können das ändern, worauf es hinweist. – juanchopanza
Verstanden! Vielen Dank :) – AldenB