我已經寫了下面的代碼鍵在map
或multimap
轉換爲set
:複製地圖/多重映射鍵矢量或設置
template<typename STLContainer>
inline auto CopyContanerKeyToSet(const STLContainer& cont)
{
std::set<decltype(cont.begin()->first)> lset;
std::transform(cont.begin(),cont.end(),std::inserter(lset,lset.end()),[](const auto it) { return it.first;});
return lset
}
現在有需求,有時我需要的密鑰轉換成vector
爲好。所以我只想知道如何編寫模板函數,它可以接受vector
或set
作爲模板參數,然後在相應地創建該容器。
只需添加您在調用函數時指定的另一個模板類型? – NathanOliver
我不想像std :: vector那樣傳遞完整類型,因爲我想要函數推導出std :: string本身,所以想知道如何只傳遞std :: vector –
Kapil
以及如何區分這些重載? – luk32