Actualmente utilizo un iterador para buscar a través de un vector y probar sus elementos. Puedo acceder a los elementos que utilizan¿Puedo hacer aritmética de puntero en un STL :: vector :: iterator
std::vector<int>::iterator it;
if (*it == 0);
¿Puedo usar la misma lógica aritmética estilo de puntero para probar también el elemento siguiente (sin alterar mi iterador)?
primero tengo que ver si va a empujar el iterador fuera de los límites
if (it != myvec.end())
continuación, prueba de tanto elemento actual y el siguiente elemento
if (*it == 1 && *(it + 1) == 1)
es que esto funciona como yo esperaría de uso de punteros?
Entonces, no puedo hacer operaciones aritméticas en 'list :: iterator', ¿verdad? – Alcott
@Alcott - correcto. Un list :: iterator es un iterador bidireccional y no admite el acceso aleatorio. Puede usar 'std :: advance' para hacer el movimiento con una sola llamada, pero la complejidad del avance es' O (n) 'para las listas (donde sería' O (1) 'para un vector). –