Index mittels find in set<string>



  • Hallo,
    ich habe folgendes Problem: Ich habe eine set von strings und möchte zu einem gegebenen Element (das in der set enthalten ist) seine Position ermitteln.
    Mein Ansatz war der, dass ich nach dem Element mit find suche, aber da bekomme ich ja nur einen Iterator auf das Element zurück. Wie finde ich also den Index des Elements in der set? Geht das mit distance? Wenn ja, wie?
    Hoffentlich kann mir jemand helfen!
    Grüße
    Lisa



  • Normalerweise solltest du einen index für ein set nicht brauchen. Die Zahlen werden ja sortiert, und nach jedem Einfügen ist der index für eine bestimmte Zahl wieder ein anderer.
    Mit distance geht es so:

    set<int> s;
    //...
    set<int>::iterator i = s.find(42);
    int dist = distance(s.begin(), i);
    

Log in to reply