[英]C++ : How to write a const_iterator?
我用迭代器編寫了自己的容器模板。 我如何實現const_iterator?
template <class T>
class my_container {
private:
...
public:
my_container() : ... { }
~my_container() { }
class iterator : public std::iterator<std::bidirectional_iterator_tag, T> {
public: ...
唯一的區別應該是當你取消引用const迭代器時,你得到一個const引用而不是對容器中對象的引用。
我發現實現迭代器的最簡單方法是boost :: iterator 。 如果你想自己動手,我認為簽名應該是:
class const_iterator : public std::iterator<std::bidirectional_iterator_tag, const T> {
與實現相同(假設您在函數簽名中使用reference_type等)
Roger Pate,value_types“簡單”。 我懷疑如果你看一下iterator_traits :: const_iterator> :: reference你會看到const,我認為這將是“const int&”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.