我想创建一个模板函数,我可以使用不同的容器类型,如向量、双端队列或列表,并且可以使用不同的数据类型(整数、双精度或字符串)调用它,我已经搜索但找不到一个答案,我试过这样做,但我得到了错误:
#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;
}
那么,请问正确的方法是什么?