C++ 如何使用构造函数(带参数)创建模板类并将该类的方法传递给线程

C++ 如何使用构造函数(带参数)创建模板类并将该类的方法传递给线程,c++,multithreading,templates,C++,Multithreading,Templates,我想创建一个包含向量的模板类。类的构造函数接收一个int size作为参数。在这个类中,有一个方法可以将元素推入向量。主要是将这个push()传递给一个线程 #include <iostream> #include <thread> #include <vector> using namespace std; template <class T> class Queue{ private: int size; vector<T> v;

我想创建一个包含向量的模板类。类的构造函数接收一个int size作为参数。在这个类中,有一个方法可以将元素推入向量。主要是将这个push()传递给一个线程

#include <iostream>
#include <thread>
#include <vector>
using namespace std;

template <class T> class Queue{
private:
int size;
vector<T> v;
public:
Queue(int size) {
    this->size = size;
}

void push(T t) {
    v.push_back(t);
 }
};

int main()
{
Queue<int> * miaCoda = new Queue(4);
thread t1(&Queue::push, miaCoda, 2);
t1.join();
}
#包括
#包括
#包括
使用名称空间std;
模板类队列{
私人:
整数大小;
向量v;
公众:
队列(整数大小){
这个->大小=大小;
}
无效推力(T){
v、 推回(t);
}
};
int main()
{
队列*miaCoda=新队列(4);
线程t1(&队列::push,miaCoda,2);
t1.join();
}
我在main的前两行中得到了所有这些错误

错误C2514“队列”:类没有构造函数 错误C2955“队列”:使用类模板需要模板参数列表
错误C2661'std::thread::thread':没有重载函数接受3个参数 类模板“队列”的错误(活动)E0441参数列表缺失

错误(活动)E0289构造函数“std::thread::thread”的实例与参数列表不匹配当我学习时,我认为它是“队列是一个返回类的编译时函数,此函数的参数包装在
中”。因此,
Queue
是一个返回类的编译时函数调用。
Queue<int> * miaCoda = new Queue(4);
thread t1(&Queue::push, miaCoda, 2);
thread t1(&Queue<int>::push, miaCoda, 2);