我目前有这段代码:
typedef std::pair<std::string,std::string> myPair;
std::multimap<int,pair > topNodes;
topNodes.insert(std::make_pair(someNode->counter,
std::make_pair(someNode->phrase,title)));
如何创建具有密钥和两个关联值的多图? 或者有更好的方法吗?
错误:没有可行的转换 &#39; __ map_iterator&lt; __ tree_iterator&lt; __ value_type&lt; [...],struct std :: __ 1 :: pair,class std :: __ 1 :: basic_string&gt;&gt;,类std :: __ 1 :: __ tree_node,类std :: __ 1 :: basic_string&gt; &gt;,无效 * GT; *,[...]&gt;&gt;&#39;到&#39; __ map_iterator&lt; __ tree_iterator&lt; __ value_type&lt; [...], class std :: __ 1 :: basic_string&gt ;, class std :: __ 1 :: __ tree_node&gt;,void *&gt; *,[...]&gt;&gt;&#39;
我使用How to insert a pair of std::pair inside another std::pair?作为插入的参考。
答案 0 :(得分:3)
std::multimap<int,pair > topNodes; //Error cause > > not compiling
为什么你认为它应该?那时pair
是什么?
<子>
请记住std::pair<>
需要具有正确的模板参数才能实例化它。
子>
或者有更好的方法吗?
你可能意味着这样的事情:
typedef std::pair<std::string,std::string> myPair;
std::multimap<int,myPair> topNodes;
// ...