C++ std::作为模板配对<;类别>;论点C++;

C++ std::作为模板配对<;类别>;论点C++;,c++,class,templates,std,C++,Class,Templates,Std,我有一个类是模板,使用参数:template 我可以将此类模板设置为std::pair类型吗?我收到一个未解决的外部符号错误,并试图找出原因。将一对符号传递到模板中的一个小示例 #include <iostream> #include <vector> template <typename T> class C { public: void add(const T& val) { m_vec.push_back(val); }

我有一个类是模板,使用参数:
template


我可以将此类模板设置为
std::pair
类型吗?我收到一个未解决的外部符号错误,并试图找出原因。

将一对符号传递到模板中的一个小示例

#include <iostream>
#include <vector>

template <typename T>
class C {
    public:
        void add(const T& val) { m_vec.push_back(val); }
    private:
        std::vector<T> m_vec;
};

int main()
{
    C<std::pair<int, char> > pairC;
    pairC.add(std::make_pair(5, 2));
}
#包括
#包括
模板
C类{
公众:
void add(const T&val){m_vec.push_back(val);}
私人:
std::向量m_-vec;
};
int main()
{
C pairC;
pairC.add(std::make_pair(5,2));
}
将实例化一个模板类,使用std::pair并将其保存在向量中。Add将使用make_pair生成的对插入到该向量中


注意,对于旧的C++编译器,需要在两个右香草之间添加一个空间,以防止它被视为右移运算符。

粘贴在代码中是很好的:但是,是的,你可以做到。你问“代码> x<代码>是否可以是<代码>配对< /代码>?是的,那是可能的。你的错误在别处。询问abc是否可行并不是解决未解决的外部错误的方法。要解决这些问题,请找出链接器要查找的内容,然后自己尝试查找。如果你找到它,找出它为什么没有被链接。如果找不到,请定义它,以便链接器下次可以找到它。你问了一个是非问题,无论你得到什么答案,你都离解决眼前的问题不远了。