gpt4 book ai didi

C++:如何模板化一个集合?

转载 作者:搜寻专家 更新时间:2023-10-30 23:52:22 25 4
gpt4 key购买 nike

假设我有一个双端队列和一个 vector :

deque<someclass> d;
vector<similar_class> v;

现在,我有两个不同的容器和两个不同但相似的元素类。

我有一个函数执行对以下任何类型有用的操作:

deque<similar_class> a;
deque<someclass> b;
vector<similar_class> c;
vector<someclass> d;

如何在模板中对“collection_type”进行编码?


例如:

// starting with this function (which is fine)
template<class element>
element * my_func(deque<element> & collection)
{ ... }


// Now, how do I abstract this for a generic collection?
template<class collection, class element>
element * my_func(collection<element> & c)
{ ... }

???

最佳答案

template<class collection, class element> 
element* my_func(collection<element> & c)

应该是:

template <template <typename ...> class collection, class element> 
element* my_func(collection<element>& c)

您还有其他可能的选择:

template <class C> 
typename C::pointer // or also auto or decltype(auto)
my_func(C& c)

关于C++:如何模板化一个集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48585479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com