2011-04-10 35 views
1

我試圖把2個參數放在一個使用push_back的矢量中,但它給了我一個錯誤,因爲函數只允許一個參數。我如何傳遞2個參數?push_back中的2個參數

頂點類別:

template <class VertexType, class EdgeType> class Vertex{ 
public: 
std::vector<std::pair<int, EdgeType>> VertexList; 
}; 

外頂點類內的Main():

project3::Vertex<string, string> v1("v1"); 
v1.VertexList.push_back(1,"e1"); 

錯誤是:

錯誤C2661:「的std ::矢量< _Ty> ::的push_back ':沒有重載函數需要2個參數 智能感知:函數調用中的參數太多

回答

1

你需要做

v1.VertexList.push_back(std::pair<int, EdgeType>(1,"e1")); 
+1

或者,稍微少一些的尖括號:'.push_back(make_pair(1,「e1」))' – 2011-04-10 04:10:00

+0

我嘗試了Ernest Friedman - Hill建議的上述代碼。萬分感謝!!! – 2011-04-10 04:12:19

1

嘗試的push_back(make_pair(1字符串( 「E1」)));

+0

對於make_pair爲+1。 – 2011-04-10 04:39:03

+0

+1從我身邊太...好主意。 – 2011-04-10 05:20:08