Um eine Range-Pipeline zu erstellen, die Werte in temporären Containern verarbeitet, ist es wichtig, den Operator „views::cache1“ zu integrieren. Dieser Operator speichert die Ergebnisse einer Transformation zwischen und stellt so sicher, dass sie für nachfolgende Vorgänge verfügbar sind.
Stellen Sie sich das folgende Szenario vor, in dem eine Drittanbieterfunktion f einen Parameter vom Typ T annimmt und einen Vektor von T zurückgibt. Zu erstellen eine Bereichspipeline, die f auf alle Elemente eines unendlichen Bereichs src anwendet und die Ergebnisse auf einen einzigen Bereich reduziert, können wir den folgenden Ansatz verwenden:
auto rng = src | views::transform(f) | views::cache1 | views::join;
Komponenten der Pipeline:
Durch die Einbindung von view::cache1 stellen wir sicher, dass der temporäre Vektor Von f erstellte Container stehen für view::join zur Verfügung, um sie zu einem einzigen Bereich zu verketten. Dies ist wichtig für die Erstellung von Range-Pipelines, die ordnungsgemäß mit temporären Containern funktionieren.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3