Es gibt verschiedene STL-Algorithmen, die auf einem Ausgabe-Iterator beruhen, um das Ergebnis des Algorithmus zu speichern.Ausgabe-Iterator-Adapter zum Zählen, aber nicht zum Kopieren
Zum Beispiel speichert std::set_intersection
alle gemeinsamen Elemente zwischen zwei sortierten Bereichen in einem Ausgabe-Iterator, der dann nach jedem ausgegebenen Element inkrementiert wird.
Manchmal interessiert mich nicht die tatsächlichen Elemente, sondern nur die Anzahl der Ausgabeelemente. In solchen Fällen ist es eine Verschwendung von Speicher und Leistung, die Elemente zu kopieren. Gibt es einen Iteratoradapter, mit dem ich die Kopie der Elemente zählen und vermeiden kann? Wenn nicht, können Sie eine generische Implementierung eines solchen Adapters vorschlagen?
Voting als Ressourcenanforderung zu schließen, aber Sie möchten [ 'boost :: counting_iterator'] (http://www.boost.org/doc/libs/1_50_0/libs/iterator/doc/counting_iterator. html) – NathanOliver
Ihre Frage ist ein wenig unklar: Sie möchten wissen, wie viele Elemente die Schnittmenge von 2 Sätzen ohne Berechnung der Schnittmenge enthalten würde? – wasthishelpful
@washishelpful ja, in meinem Beispiel von set_difference, aber ich bin auf der Suche nach einer generischen Ausgabe Iterator-Lösung für jeden solchen Algorithmus. – T33C