std :: pair作为模板<class>参数? C ++ </类>

时间:2011-11-22 20:33:30

标签: c++ class templates std

我有一个类是模板,使用参数:template <class X>

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

1 个答案:

答案 0 :(得分:3)

将一对传递到模板中的一个小例子。

#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));
}

将实例化一个采用std ::对并将其保存在向量中的模板类。将使用make_pair制作的对插入到该向量中。

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

相关问题