首先請(qǐng)大家思考一個(gè)問(wèn)題:以下6個(gè)問(wèn)題可否共享一段代碼?

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

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

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

 1 template <class Iterator, class Act, class Test> 2  3 void process(Iterator begin, Iterator end, Act act, Test test) 4  5 //對(duì)容器中在給定范圍內(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)前元素滿足條件,則對(duì)其采取行動(dòng)12 13 }

網(wǎng)友評(píng)論