Ich bin ein Iterator übergeben und ich muss es an eine andere Funktion übergeben - aber gefiltert, so dass bestimmte Elemente übersprungen werden (es ist eine Reihe von Zeigern, und ich möchte die NULL-Zeiger ausfiltern).boost :: filter_iterator - wie würde ich das mit der STL machen?
Ich googeln für „stl Filter Iterator“, um zu sehen, wie dies zu tun, und boost::filter_iterator kam.
Das sieht gut aus und ich könnte es benutzen, aber könnte ich das auch mit der guten alten STL machen? Natürlich ohne die Elemente in einen neuen Container zu kopieren.
Ich denke, ich müsste eine andere Iterator-Klasse erstellen, die die notwendigen begin()
, end()
usw. Funktionen bereitstellt und filtert? Also müsste ich genau die boost
iterator_filter
... re-implementieren?
Ich stimme etwas nicht zu: Boost kann mühsam installiert werden, und manchmal wollen Sie nicht, dass zusätzliche Abhängigkeit. Ich denke der * wirkliche * Grund, dass man 'filter_iterator' nicht umschreiben würde, ist, dass es in der Tat ziemlich schwierig (und sehr mühsam) ist, richtig zu schreiben. –