2017-01-18 1 views
0

c++11 or c++17を使用してLinux端末で実行すると、unordered_mapのプログラム例が正常に動作します。私は>後押し」に::順不同unordered_map、一致関数呼び出しエラーなし

を含む多くのエラーメッセージにコールに該当する機能を与えない:: unordered_map、c++11 or c++17を使用してeclipseNeon.1a Release(4.6.1)で同じプログラムを試してみました::(int型、STD ::ペア)を挿入します' refmap.insert(1、std :: make_pair(2,5));

#include <iostream> 
#include <boost/unordered_map.hpp> 
#include <utility> 
typedef boost::unordered_map<int, std::pair<int, int> > reference_map; 
reference_map refmap; 
int main(){ 

     refmap.insert(1, std::make_pair(2,5)); 
     return 0; 
    } 

答えて

2

insertない2 – std::pair<K const, V>(別名std::unordered_map<K,V>::value_type)、単一の引数を取ります

int main() { 
    refmap.insert(std::make_pair(1, std::make_pair(2, 5))); 
} 

キーと値のために別々の引数を取る関数がemplace命名され、そしてあるべきほとんどの場合に好ましい:

int main() { 
    refmap.emplace(1, std::make_pair(2, 5)); 
} 

Online Demo

+0

おかげで、ええ、当然それはLinuxターミナル – AwaitedOne

+0

@AwaitedOneで働く理由を言ったが、:いいえアイデア - それはいけない、それは間違っているのです。 – ildjarn

関連する問題