stl中大量的運用了模板;
今天就拿stl 的容器和一些相關的操作來說明下;
std::set
1、 新增自定義比較操作
templatestruct lesscmp
};
std::set> ms;
2、迴圈遍歷, 這個肯定木有難度了
template void myprint(const t& lhs)
for_each(ms.begin(), ms.end(), myprint);
3、遍歷比較
一、 直接扔乙個固定的數 在函式中比較,這個就不寫了
二、直接來函式吧
templatebool funcmp(const t& lhs)
for_each(ms.begin(), ms.end(), funcmp);
三、for_each(ms.begin(), ms.end(), std::bind2nd(std::greater(), 5);, ///< bind1st 同理
四、仿造二自己實現乙個
template struct mycmp : public std::binary_function < t, t, bool >
};
for_each(ms.begin(), ms.end(), std::bind2nd(mycmp(), 5));
五、來個麻煩的
templatestruct newcompare
bool operator() (const t& lhs) const
p m_p;
};
for_each(ms.begin(), ms.end(), newcompare(5));
六、比四來說好些的
templatestruct newcompare2
};
for_each(ms.begin(), ms.end(), newcompare2());
六、直接來函式吧
templatebool funcmp(const t& lhs)
for_each(ms.begin(), ms.end(), funcmp);
一些實用的模板
1 floyd判最小環 注 包含基本的floyd演算法。最好寫的單源最短路徑演算法。但時間複雜度o n 3 n 1000基本就用不了了。void floyd 3 dijkstra 迪傑斯特拉 演算法 單源最短路徑演算法 基本思路 每次確定到起點距離最短且距離尚未確定的點的dis,並對其所有鄰邊進行鬆...
一些模板的應用
首先,是曾經的講師lh大佬的模板 主要涉及了常用的檔案頭以及一些常用語句和函式的縮寫 include include include include include include include include include include using namespace std typedef...
模板的一些總結
1.模板中巢狀依賴型別名在使用過程中遵循 在宣告 template parameters 模板引數 時,class 和 typename 是可互換的。用 typename 去標識 nested dependent type names 巢狀依賴型別名 在 base class lists 基類列表 ...