цикл для вектора и двусвязного списка

Почему здесь не подходит знак <? В условии нужно использовать !=

for (list<int>::iterator i = a.begin(); i < a.end(); i++){
    
}

Хотя в векторе можно и с помощью знака <

for (vector<int>::iterator i = a.begin(); i < a.end(); i++){

}

Ответы (1 шт):

Автор решения: MBo

Представьте, что у вас есть два адреса узлов связного списка.

Разве по этим адресам вы можете сказать, что один из узлов идёт раньше другого ("меньше")?

Очевидно - не можете. Вот и сравнивать соответствующие итераторы имеет смысл только на равенство/неравенство

→ Ссылка