說我有std::unordered_map < int, std::vector< int > > my_hashtable
和我插入一個新條目:在向std :: unordered_map插入元素時避免不必要的構造函數調用?
my_hashtable.insert(make_pair(a_key, std::vector()));
這工作,但它調用構造函數和賦值OPS多次。 (1)std :: vector(),(2)make_pair參數是按值傳遞,copy(3)make_pair按值返回類型,再次複製(4)函數插入會再次複製。
請糾正我,如果我算錯了。因此,我們製作了太多的副本,我們真的只應該調用構造函數一次,我們如何才能實現這一點(在C++ 11下)?
我注意到std :: unordered_map :: insert有一個使用move構造函數的版本,但不知道如何使用它。
這正是我要尋找:) – szli