end() и контейнеры
От: Страж  
Дата: 25.08.08 12:25
Оценка:
Нужно перебрать элементы контейнера пока не дошли до конца или до элемента с определенным значением.

struct X 
{
 int y;
 //...
};
std::vector<X> v;
std::vector<X>::iterator i;
for(i = v.begin(); i != v.end(); i++) 
{
  if(i->y == 0) break;
  //обработка элементата
}


претит if(i->y == 0) break;

можно так?
std::vector<X> v;
for(i = v.begin(); i != v.end() && i->y ; i++) 
{
  //обработка элементата
}

или неизбежны проблемы из-за выхода за границу массива если нет элементов где y == 0?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.