Ich habe eine std::set und ich wollte durch die Element-Paare in der Menge zu iterieren, so schrieb ich 2 for-Schleifen wie folgt:
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
}
}
Der Compiler sagte mir, dass ich dem Iterator keine Zahlen hinzufügen kann. Ich kann sie jedoch inkrementieren und dekrementieren. Eine Abhilfe finde ich, dass ich die erste Iteration überspringen kann:
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
}
}
Warum kann ich nicht einfach eine Zahl addieren, sondern muss sie hochzählen?