set-intersection

___ answer9161102 ___

Das Ausgabeargument für %code% muss veränderbar sein %Code%. Die Iteratoren von %code% unterstützen niemals Mutationen, da sich der Wert eines Elements ändern könnte, wo es hingehört der Satz. Funktionen in der Gruppe mit %code% sind entworfen um an sortierten Sequenzen zu arbeiten, z.B. %Code%.

In Ihrem Fall können Sie entweder %code% durch %code% ersetzen, sortiert sie nach Bedarf (und möglicherweise mit %code% und Einfügung, um sie vor der Einführung sortiert zu halten) oder zu verwenden %code% .

    
___ qstnhdr ___ STL Schnittpunkt und die Ausgabe setzen ___ answer9161027 ___
%Vor%

Der letzte Parameter sollte ein Ausgabe-Iterator sein. In Ihrem Fall ist es nicht, noch mehr, es ist unveränderlich (bc.% Co_de% hat unveränderliche Elemente). Sie sollten stattdessen einen insert_iterator verwenden:

%Vor%     
___ tag123c ___ C ++ ist eine universelle Programmiersprache. Es wurde ursprünglich als Erweiterung von C entworfen und behält eine ähnliche Syntax, ist aber jetzt eine komplett andere Sprache. Verwenden Sie dieses Tag für Fragen zu Code, der mit einem C ++ - Compiler kompiliert werden soll. ___ qstntxt ___

Ich habe ein Code-Snippet wie dieses, das unter VC ++ 2010 kompiliert wird.

%Vor%

Soweit ich das beurteilen kann, sollte das funktionieren. Ich bekomme jedoch Build-Fehler:

%Vor%

Dafür habe ich explizite Template-Parameter-Deklaration gemacht:

%Vor%

Aber ich habe die gleichen Fehler. Mein Problem hier ist, dass im zweiten Fall, wenn ich einen const_iterator übergeben würde, sollte es mit einem Konvertierungsfehler zwischen const_iterator und Iterator fehlschlagen, da der Parametertyp nicht zusammenpassen würde. Was vermisse ich hier? (Ich kenne die "Inserter" -Form von set_intersection, aber ich möchte lernen, was ich hier falsch mache)

    
___ tag123stl ___ Die Standardvorlagenbibliothek (STL) ist eine C ++ - Bibliothek mit generischen Containern, Iteratoren, Algorithmen und Funktionsobjekten. Als C ++ standardisiert wurde, wurden große Teile der STL in die Standardbibliothek übernommen, und diese Teile in der Standardbibliothek werden manchmal auch zusammen als "die STL" bezeichnet. ___ tag123setinterection ___ Die Schnittmenge von zwei oder mehr Sets besteht aus den Elementen, die alle Sets gemeinsam haben. ___ answer9161054 ___

%code% kann aus zwei Gründen nicht als Ausgabeargument von %code% verwendet werden:

  • Die Menge ist leer, und dies würde versuchen, vorhandene Elemente der Menge zu überschreiben
  • Sie können Elemente eines Sets nicht ändern.

Stattdessen möchten Sie ein %code% , um die neuen Elemente in die Menge einzufügen:

%Vor%     
___
2
Antworten

Effizienter Schnitt einer Sammlung von Mengen in C ++

Ich habe eine Sammlung von std::set . Ich möchte die Schnittmenge aller Sätze in dieser Sammlung auf die schnellste Weise finden. Die Anzahl der Sätze in der Sammlung ist normalerweise sehr klein (~ 5-10), und die Anzahl der Elemente in jedem...
13.10.2012, 18:57
4
Antworten

Indizes, die zwei numpige Arrays schneiden und sortieren

Ich habe zwei numplige Reihen von ganzen Zahlen, beide von mehreren hundert Millionen. Innerhalb jedes Arrays sind die Werte eindeutig und jedes ist zunächst unsortiert. Ich hätte gerne die Indizes, die ihre sortierte Schnittmenge ergeben. Zu...
04.11.2015, 18:10
3
Antworten

STL Schnittpunkt und die Ausgabe setzen

Ich habe ein Code-Snippet wie dieses, das unter VC ++ 2010 kompiliert wird. %Vor% Soweit ich das beurteilen kann, sollte das funktionieren. Ich bekomme jedoch Build-Fehler: %Vor% Dafür habe ich explizite Template-Parameter-Deklaration ge...
06.02.2012, 13:42