2011-11-22 39 views
1

我有一個類,它是一個模板,使用參數:template <class X>std :: pair作爲模板<class>的參數? C++

我能模板這個類是std::pair < W, Z>型的?我收到一個無法解析的外部符號錯誤,並試圖找出原因。

+5

發佈相關代碼。 –

+1

粘貼你的代碼會很好:)但是,你可以做到這一點。 –

+2

你問'X'是否可以'對'?是的,這是可能的。你的錯誤在別處。 –

回答

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 :: pair並將其保存在向量中。將使用make_pair製作的一對插入到該向量中。

請注意,對於較早的C++編譯器,您需要在兩個右V形符號之間添加一個空格,以阻止它被視爲右移運算符。

+0

感謝您的幫助,非常感謝。 –

+0

不用擔心,祝你好運:) –

相關問題