簡體   English   中英

boost :: filter_iterator - 我如何用STL做到這一點?

[英]boost::filter_iterator — how would I do that with the STL?

我傳遞了一個迭代器,我必須將它傳遞給另一個函數 - 但是過濾掉了以便跳過某些元素(它是一系列指針,我想過濾掉NULL指針)。

我用google搜索“ stl filter iterator ”來看看如何做到這一點,並且boost :: filter_iterator出現了。

這看起來不錯,我可以使用它,但我可以用好的舊STL嗎? 當然,不要將元素復制到新容器中。

我想我必須創建另一個迭代器類,它提供必要的begin()end()等函數並進行過濾? 所以我必須重新實現boost iterator_filter ......?

你是對的; 你本質上是自己重新創建過濾器迭代器。 我的建議是使用Boost的filter_iterator。 Boost作為c ++最常用的外部庫具有特殊的地位; 許多c ++委員會成員幫助編寫了庫以獲得提升。 它的無處不在本質上使它幾乎成為現實; 這里真的沒有理由重新發明輪子。

我同意rlbond。 不要重新發明輪子並使用Boost :: filter_iterator。 如果您不想在項目中擁有所有boost庫,則可能需要考慮使用boost.bcp來精確提取所需的庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM