У меня есть std :: set, и я хотел перебрать пары элементов в наборе, поэтому я написал 2 для циклов следующим образом:
for(std::set<T>::iterator i=mySet.begin();i!=mySet.end();++i)
{
for(std::set<T>::iterator j=i+1;j!=mySet.end();++j)
{
// do something
}
}
Компилятор сказал мне, что я не могу добавитьчисла для итератора.Однако я могу увеличивать и уменьшать их.Обходной путь, который я нахожу, что я могу пропустить первую итерацию:
for(std::set<T>::iterator i=mySet.begin();i!=mySet.end();++i)
{
std::set<T>::iterator j=i;
for(++j;j!=mySet.end();++j)
{
// do something
}
}
Почему я не могу просто добавить число, почему я должен увеличивать?