簡體   English   中英

如何為自定義輸入迭代器定義指針

[英]How to define pointer for a custom input iterator

我正在編寫一個自定義輸入迭代器,它適應底層序列並產生轉換后的值(我知道boost::transform_iterator ,但這是特殊的)。

我不確定如何為這個迭代器定義pointer類型。 由於迭代器動態生成值, reference被定義為value_type的別名(允許輸入迭代器, reference必須僅可轉換為value_type )。 我的直覺是它仍然只是value_type * ,我真的想不出任何其他有意義的東西。

但是,我還沒有找到任何關於預期使用pointer的上下文的信息,因此不知道對它有什么要求, boost::transform_iterator的文檔(通常提供有用的建議)是在這個問題上保持沉默。

所以我的問題是,將pointer定義為value_type *通常是否安全? 如果沒有,有哪些替代方案?

我在標准中唯一能找到的指出他們應該引用的內容來自 [iterator.traits]

[...]此外,類型

iterator_traits<Iterator>::reference iterator_traits<Iterator>::pointer

應定義為迭代器的基准和指針類型,即,用於一個迭代器對象a ,類型相同的類型*aa-> ,分別。

暫無
暫無

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

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