Colección de citas famosas - Slogan de motivación - Cómo utilizar iteradores como parámetros predeterminados de funciones en C++

Cómo utilizar iteradores como parámetros predeterminados de funciones en C++

Sí, los iteradores son en realidad tipos anidados. Como no requiere parámetros de puntero, se permiten conversiones implícitas y, por supuesto, no se puede asignar un valor de puntero. Pero puede llamar a su constructor predeterminado con valores predeterminados para los parámetros, por ejemplo:

void f(STD::vector<int>*Iterator ITER = STD::vector<int& gt*Iterator())

{

}

Pero claro, ¿de qué sirve? Al utilizar un iterador definido con el constructor predeterminado, el resultado no está definido. Además, el operador de comparación del iterador afirmará si los dos iteradores pertenecen al mismo contenedor, lo que significa que no se puede juzgar el iterador juzgando si el puntero es válido (ivec.begin() == iter) como ptr == NULL . Por lo tanto, no utilice valores predeterminados para los iteradores, ya que los valores predeterminados no son tan flexibles como los punteros.