Viele Zahlen von-bis aufteilen, unsortiert, vorhanden/nicht vohanden



  • Hi,
    ich habe einen Vektor mit Zahlen >=0 und kleiner <K.
    vektor.size() oft viel kleiner als K (muss aber nicht). Keine Zahl kommt doppelt vor.
    Ich möchte nun wissen welche Zahlen zwischen 0 bis K in diesem Vektor sind und welche nicht.
    Also dann am Ende eine Vektor mit vohandenen Zahlen und einen ohne.

    Die Zahlen sind unsortiert. Sortieren könnte lange dauern, da Vektor recht groß werden kann 100 bis 100.000.

    (Wenn ein Nutzer schlimmes im Schilde führt, können unter Umständen auch Zahlen doppelt vorkommen oder größer = K)

    Wie mach ich das am Besten?


  • Mod

    std::unordered_set zahlen_im_vector(dein_vector::begin(), dein_vector.end());
    

    Alternativ ein nicht-unordered set, falls du aus irgendeinem Grund die Zahlen sortiert benötigen solltest.

    Von da aus kommst du dann sicher zu der Form, die du wirklich brauchst. Deine Anforderung mit dem vector der vorhandenen Zahlen und dem vector der nicht-vorhandenen Zahlen klingt nämlich nach einem typischen X-Y-Problem.


Anmelden zum Antworten