c++ - 为什么我不能在 C++ 中将对象插入到地图中
问题描述
所以我有一个应该返回以下地图的函数:
map<MyObj*, Datastruct>
在尝试从包含所述对象的列表中插入对象时:
for(auto element: myList){
Datastruct str;
str.property1 = element.property1;
str.property2 = element.property2;
saidMap.insert(element.PointerToMyObj, str);
}
myList中的对象包含指向 myObj 的指针和一些我需要从列表移动到地图的属性。在下面的函数中执行了此代码:
map<MyObj*, Datastruct> listToMap = convertList(myList);
编译器对我大喊大叫:
“没有匹配的函数来调用 'std::map::insert(MyObj*&, Datastruct&)”
在这里我很无助。我不知道为什么编译器会显示我正在尝试传递对函数的引用,如果myList 中的元素(见上文)包含
MyObj *PointerToMyObj;
在我看来,哪个是传递给插入函数的正确类型,对吗?我也试过
std::make_pair
于是编译器对我大喊大叫,因为我试图将一对插入
map<MyObj*, Datastruct>.
我完全迷失了。有人可以向我解释我做错了什么吗?
解决方案
推荐阅读
- wordpress - 我可以使用 WordPress 博客作为带有 https NGINX 的主域的子文件夹吗?
- eclipse - JyNI Eclipse 设置
- r - RColorbrewer没有改变geom_bar上的绘图颜色 - R
- python - numpy - 是否可以构造一个 ndarray 子类,以便我可以对数组对象及其数组属性进行切片?
- javascript - TamperMonkey 无法点击按钮
- cakephp - cakephp:从下拉列表中向报告添加过滤器
- python - 如何提取特定的
- 使用 Xpath 或 CSS 的元素?
- powershell - 尝试在 powershell 中运行 XML 字符串
- tfs - TFS 2017 on Prem 不断要求提供凭证
- python - 无法使用视图名称“源详细信息”Django 解析超链接关系的 URL