Die Erkennung von Duplikaten mit set

Arbeite ich mit Daten, die nicht pop-up zweimal. Wenn es funktioniert, sollte es das erkennen und aufrufen einer Funktion, die Handhabung, die.

Derzeit drück ich mich einige Daten zu einem Vektor und vor dem einsetzen, Sie sollten überprüfen, ob die Daten bereits enthalten sind in diesem Vektor. Im moment ist dies nicht sehr effektiv, e.g

for (int i = 0; i < myVector.size() ; i++) 
{
  if ( myVector[i] == data ) 
  {
             //invoke function
             return false;
  }
}

Ich weiß set ist eine spezielle Art von Vektor das können nur die eindeutigen Daten.

Gibt es eine andere Möglichkeit zum erkennen von doppelten Daten Hinzugefügt werden (oder zumindest versuchen, um es hinzuzufügen), um die set?

  • Gibt es einen Grund, dass Sie mit einem Vektor?
  • Ich fahre Vektor-Funktion , die mehr optimalized als Rückgabe ein array von es ( ja, das ist was mir gesagt wurde hier ). Im anderen Teil des Codes , die ich verwenden Vektor von structs , aber die Idee ist die gleiche
  • Ihre Frage ist nicht klar, Sie fragte nach Duplikaten mit einem Vektor oder ein set ?
  • Ich gab ein Beispiel, was ich nun benutze, die ist unwirksam , und fragte über mögliche einfachere und bessere Lösung, die mithilfe von set
  • Beim einfügen in einen Satz der zurückgegebene Wert zeigt an, ob es ein Duplikat ist oder nicht: en.cppreference.com/w/cpp/container/set/insert
  • Ihre Frage bezieht sich auf die sehr grundlegenden Konzept der Vermischung. Ich schlage vor, Sie zuerst Lesen darüber, wie es scheint, Sie sind sich dessen nicht bewusst.
  • während das wissen über die Grundlagen wie hashing ist immer toll-dann mit sets und eine andere Struktur hat in der Regel nicht erforderlich, dass der Benutzer wissen über solche Dinge-Sie sind versteckt in der Umsetzung
  • Während ich Stimme mit Ihnen auf diese, ich habe lediglich gemeint es als Anregung, was ich fühlte, wäre nützlich, um die OP. Hashing ist ein sehr einfaches Konzept, die ich fühle, jeder Programmierer kennen sollte. Beachten Sie, dass ich spreche nicht über die zugrunde liegende Implementierung einer set oder einen anderen Behälter.

InformationsquelleAutor Darlyn | 2016-03-21
Schreibe einen Kommentar