我想创建一个模板函数,我可以使用不同的容器类型,如向量、双端队列或列表,并且可以使用不同的数据类型(整数、双精度或字符串)调用它,我已经搜索但找不到一个答案,我试过这样做,但我得到了错误:
#include <iostream>
#include <vector>
#include <list>
#include <deque>
#include <iterator>
#include <string>
using namespace std;
template <typename C>
void printvec(const C& numbers1)
//void printvec(container C<typename C::valuetype T>)
{
//C &numbers1;
for(auto i=0; i < numbers1.size(); ++i)
cout<<&numbers1<<endl;
//typename C<A>::iterator itr;
//for ( itr=numbers1.begin();itr != numbers1.end(); ++itr)
// cout<<*itr<<endl;
}
int main()
{
vector<int> vint{2,4,6,8,9,3};
vector<double> vdouble{5.8, 6.7, 7.3};
vector<string> vstring {"alex", "bbb", "cccc"};
list<int> ls{1,2,3,4,5};
printvec(vint );
printvec(vdouble);
printvec(vstring);
printvec(ls);
return 0;
}
那么,请问正确的方法是什么?