3 Stimmen

Warum ist das Hinzufügen einer Zahl zum Iterator eines assoziativen Containers nicht möglich?

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?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X