-1
我有類C++製作地圖雙對
template <typename _T, typename _E>
class CRoute
{
public:
CRoute& Add(const _T & u1 , const _T & u2 , const _E & e);
...
private:
map < _T, vector<pair<_T,_E>> > graf;
};
添加功能必須分配給elemts格拉夫;
但是!我不能使用_T和_E類型的默認構造函數。因此,我不能這樣做:
template <typename _T, typename _E>
CRoute<_T,_E>& CRoute<_T,_E>::Add(const _T & u1 , const _T & u2 , const _E & e){
graf[u1].emplace_back(u2 , e);
return *this;
}
我只能使用複製構造函數。 我該怎麼做?
請提供[mcve]。 – Barry
您的'graf'映射的鍵值對是'std :: pair <_T,std :: vector>',您試圖插入'std :: pair <_T,std :: '<_T, _E>>'。 –
user2296177