Why is my insert into std::map failing?

c++

Solution

You need to wrap your key and value in an `std::pair` object:

sprites.insert(std::make_pair(sprite, texture));

This is because `std::map` is a Pair Associative Container. The `value_type` of `std::map<K,V>` is `std::pair<const K,V>`.

Problem

In my header file, I'm declaring a map like so: ``` std::map<LPD3DXSPRITE, LPDIRECT3DTEXTURE9> sprites; ``` In my C++ file, I am trying to insert like so: ``` sprites.insert(sprite, texture); ``` The types I am passing to sprites.insert are correct. Why can I not insert this way? What is the proper way to insert? When I do this, the error I get is like this (snipped): error C2664: 'std::_Tree<_Traits>::iterator std::_Tree<_Traits>::insert(std::_Tree<_Traits>::iterator,const std::pair<_Ty1,_Ty2> &)' : cannot convert parameter 1 from 'LPD3DXSPRITE' to 'std::_Tree<_Traits>::iterator'

Original source