在我的头文件中,我正在声明一个这样的地图:
std::map<LPD3DXSPRITE, LPDIRECT3DTEXTURE9> sprites;
Run Code Online (Sandbox Code Playgroud)
在我的C++文件中,我试图像这样插入:
sprites.insert(sprite, texture);
Run Code Online (Sandbox Code Playgroud)
我传递给sprites.insert的类型是正确的.为什么我不能这样插入?插入的正确方法是什么?当我这样做时,我得到的错误是这样的(剪断):
错误C2664: '的std :: _树<_Traits> ::迭代器的std :: _树<_Traits> ::插入(STD :: _树<_Traits> ::迭代器,常量性病::对<_Ty1,_Ty2>&)':无法将参数1从'LPD3DXSPRITE'转换为'std :: _ Tree <_Traits> :: iterator'
Cha*_*via 10
您需要将键和值包装在std::pair对象中:
sprites.insert(std::make_pair(sprite, texture));
Run Code Online (Sandbox Code Playgroud)
这是因为std::map是一个Pair关联容器.的value_type的std::map<K,V>是std::pair<const K,V>.
| 归档时间: |
|
| 查看次数: |
2682 次 |
| 最近记录: |