首先請大家思考一個問題:以下6個問題可否共享一段代碼?

平面設(shè)計培訓(xùn),網(wǎng)頁設(shè)計培訓(xùn),美工培訓(xùn),游戲開發(fā),動畫培訓(xùn)

  答案是肯定的。采用泛型編程對問題進(jìn)行抽象,抽取出以上問題的共性即算法(algorithm)、容器(container)和迭代器(itera),這也是STL(Standard Template Library, 標(biāo)準(zhǔn)模板庫)的三要素。

平面設(shè)計培訓(xùn),網(wǎng)頁設(shè)計培訓(xùn),美工培訓(xùn),游戲開發(fā),動畫培訓(xùn)

 1 template <class Iterator, class Act, class Test> 2  3 void process(Iterator begin, Iterator end, Act act, Test test) 4  5 //對容器中在給定范圍內(nèi)(即起于begin止于end)所有滿足給定條件的元素進(jìn)行處理 6  7 { 8  9     for (; begin != end; ++begin)   //從頭至尾遍歷容器內(nèi)的元素10 11         if (test(*begin))   act(*begin);  //若當(dāng)前元素滿足條件,則對其采取行動12 13 }

網(wǎng)友評論