Para la mayoría de los contenedores, el tipo iterator
proporciona de lectura-escritura acceso a los valores en el recipiente, y el tipo const_iterator
proporciona acceso de sólo lectura. Sin embargo, para el std::set<T>
, el tipo de iterador no puede proporcionar acceso de lectura-escritura, porque la modificación de un valor en el conjunto (potencialmente) rompe los invariantes del contenedor. Por lo tanto, en std::set<T>
, tanto iterator
y const_iterator
proporcionar acceso de sólo lectura.¿Existe una diferencia operativa entre std :: set :: iterator y std :: set :: const_iterator?
Esto me lleva a mi pregunta: ¿Hay alguna diferencia entre las cosas que puedes hacer con un std::set<T>::iterator
y las cosas que puedes hacer con un std::set<T>::const_iterator
?
Tenga en cuenta que en C++ 11, los métodos de manipulación de contenedores (por ejemplo, erase
) pueden tomar const_iterator
argumentos.