//五種迭代器型別
struct input_iterator_tag{};
struct output_iterator_tag{};
struct forward_iterator_tag:public input_iterator_tag{};
struct bidirectional_iterator_tag:public forward_iterator_tag{};
struct random_access_iterator_tag:public bidirectional_iterator_tag{};
//迭代器基類std:iterator,原生指標不需要使用者定義
templateclass interator
;//traits
templatestruct iteretor_traits
;//原生指標的traits偏特化版本
templatestruct iteretor_traits;
//const原生指標的traits偏特化版本
templatestruct iteretor_traits;
//獲取迭代器型別
templateinline typename iteretor_traits::iterator_category
iterator_category(const iterator&)
//獲取迭代器的distance type
templateinline typename iteretor_traits::diferrence_type*
diferrence_type(const iterator&)
//獲取迭代器的value_type
templateinline typename iteretor_traits::value_type
diferrence_type(const iterator&)
//distance函式
templateinline typename iteretor_traits::diferrence_type
_distance(inputiterator first, inputiterator second, input_iterator_tag)
return n;
}templateinline typename iteretor_traits::diferrence_type
_distance(randomaccessiterator first, randomaccessiterator second, random_access_iterator_tag)
templateinline typename iteretor_traits::diferrence_type
distance(inputiterator first, inputiterator second, input_iterator_tag)
//advance函式
templateinline void _advance(inputiterator first, distance n, input_iterator_tag)
templateinline void _advance(inputiterator first, distance n, bidirectional_iterator_tag)
templateinline void _advance(randomaccessiterator first, distance n, random_access_iterator_tag)
templateinline void distance(inputiterator first, distance n, input_iterator_tag){
return _advance(first, n, iterator_category(first));
摘自stl原始碼剖析 重新溫習一下CMM標準定義
不求生搬硬套,但求不斷提高 2 標準劃分 摘自 使用軟體工程 cmm將軟體分為5個等級 1 初始級 initial 工作無序,專案進行過程中常放棄當初的規劃 管理無章,缺乏健全的管理制度 開發專案的成效不穩定,產品的效能和質量依賴於個人能力和行為。2 可重複級 repeatable 管理制度化,建立...
traits技術,乙個簡單的例子(STL)
stl標準模板庫非常強調軟體的復用,traits技術是非常重要的,traits是特性的意思,就像,特徵萃取機,提取不同類的共性,以便能統一處理。traits依靠顯式模板特殊化,把 中因不同型別不同而發生變化的片段,拖出來,用統一的介面來包裝。這個介面,可以包含乙個c 類所能包含的任何東西,如內嵌函式...
STL初步 見識一下sort函式
stl初步 見識一下sort函式 還沒有接觸c 的時候,我做的一些演算法題如果包含有排序的問題,我一般都是用選擇排序法或者氣泡排序法來解決,但是學習了c 後,我知道了還有stl也就是c 的標準模板庫裡面的函式我是可以直接使用的。想要了解stl需要先明白c 的模板是什麼含義。include using...