c 模板的一些

2021-06-28 12:46:11 字數 1439 閱讀 9631

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 基類列表 ...