首先請大家思考一個問題:以下6個問題可否共享一段代碼?
答案是肯定的。采用泛型編程對問題進(jìn)行抽象,抽取出以上問題的共性即算法(algorithm)、容器(container)和迭代器(itera),這也是STL(Standard Template Library, 標(biāo)準(zhǔ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)友評論