91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

STL中迭代器 (Iterator) 的簡單實現

發布時間:2020-08-02 21:47:53 來源:網絡 閱讀:527 作者:shangluyi 欄目:編程語言

 

 

 

#pragma once
struct InputIteratorTag {};
struct OutputIteratorTag {};
struct ForwardIteratorTag : public InputIteratorTag {};
struct BidirectionalIteratorTag : public ForwardIteratorTag {};
struct RandomAccessIteratorTag : public BidirectionalIteratorTag {};
template<class T> 
struct InputIterator
{
 //typedef T                  ValueType;
 //typedef Distance           DifferenceType;
 //typedef T*                 Pointer;
 //typedef T&                 Reference;
 typedef InputIteratorTag IteratorCategory; //迭代器的類型 ( 包括上面那5個struct )
};
template<class Iterator>
struct IteratorTraits
{
 //typedef typename Iterator::ValueType ValueType;
 //typedef typename Iterator::DifferenceType DifferenceType;
 //typedef typename Iterator::Pointer Pointer;
 //typedef typename Iterator::Reference Reference;
 typedef typename InputIterator<Iterator>::IteratorCategory IteratorCategory;
};
template<class T>
struct IteratorTraits<T*>  //內置類型的特化版本
{
 typedef RandomAccessIteratorTag IteratorCategory;
};
template <class InputIterator>
inline size_t Distance(InputIterator first, InputIterator last)
{
 return _Distance(first, last, IteratorTraits<InputIterator>::IteratorCategory() );  //這里第三個參數 并沒有實際意義,不過正是它的存在,讓_Distance實現重載
}
template <class InputIterator>
inline size_t _Distance(InputIterator first, InputIterator last, RandomAccessIteratorTag)
{
 return last - first;
}
template <class InputIterator>
inline size_t _Distance(InputIterator first, InputIterator last, InputIteratorTag)
{
 size_t n = 0;
 while (first != last)
 {
  ++first;
  ++n;
 }
 return n;
}

 

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

托克托县| 绥江县| 荣昌县| 怀宁县| 宜都市| 深水埗区| 原平市| 正蓝旗| 南陵县| 福安市| 申扎县| 云浮市| 安图县| 镇雄县| 孟津县| 三都| 远安县| 定西市| 启东市| 南丹县| 巨鹿县| 苏州市| 盐亭县| 渭源县| 银川市| 大兴区| 阿拉善左旗| 法库县| 盐城市| 乾安县| 藁城市| 漾濞| 昂仁县| 文昌市| 宁阳县| 克什克腾旗| 黎川县| 墨江| 博爱县| 敖汉旗| 敦煌市|