客戶容器的自定義迭代器應該是嵌套類還是免費(因為缺少更好的詞)類?我已經看到了兩種方式,尤其是在書籍和在線上,所以不確定一種方法是否比其他方法更具優勢。我正在使用的兩本書都將迭代器定義為免費類,其中我檢查過的前幾個在線實作都是嵌套的。
如果迭代器僅服務于特定容器,我個人更喜歡嵌套迭代器。
謝謝, DDG
ps - 問題不在于偏好,而在于一種方法相對于其他方法的優勢。
uj5u.com熱心網友回復:
事實是迭代器,它是為特定類構建和使用的,因此不需要在外部定義它。因為您只使用它與您的容器協調。
如果您的迭代器被不同的類使用,則不同的事情,但我真的找不到它可能有用的例子。
編輯。最后,總結一下,兩者都可以完成,我認為在記憶體使用或執行時間方面沒有任何優勢。為了更好地理解這一點,我們應該檢查嵌套類和非嵌套類之間的區別,但我認為這里是題外話。
uj5u.com熱心網友回復:
雖然沒有明確的答案,
但我更愿意在外面定義它們。
我不同意ranghetto的說法
事實是一個迭代器,它是為特定類構建和使用的
如果您的迭代器被不同的類使用,則不同的事情,但我真的找不到它可能有用的例子。
我實作了類似 std::vector 的容器(注意復數形式),包括雙端容器、小緩沖區優化容器等。
它們使用相同的迭代器實作。
一般來說,在外部定義迭代器可以減少不必要的依賴。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/419339.html
標籤:
上一篇:C 上二維向量的Argmax
