将指针的映射转换为对象的映射
Converting a map of pointers to map of of objects
我有一个映射,其中有指向对象的指针作为键(值是int)。鉴于此,我想创建一个与原始映射相同的映射,但我希望键是相应的对象(也称为解引用键)
下面是我的代码:map<const Point*, int> m1 = createMap();
map<Point,int> temp;
for_each(q.begin(), q.end(), [&temp](pair<const Point*, int> p){temp.insert(make_pair(*(p.first),p.second));});
我想做的是调用一个lambda,它只是对初始映射的键进行解引用。
编译器报错"/usr/include/c++/4.8/bits/stl_function.h|235|error: no match for ' operator<'(操作数类型为' const Point '和' const Point ')|"
我是不是犯了一个愚蠢的错误?
您必须为您的类Point定义操作符<</em>
map是元素的有序集合。因此,您需要实现一个函数来对它们排序。默认情况下,该函数是operator<</em>,但如果需要,可以在构造函数中指定不同的函数。
在这里,例如:
http://www.cplusplus.com/reference/map/map/相关文章:
- 使用std::函数映射对象方法
- 使用"std::unordereded_map"映射到"std::list"对象
- 在c++中访问int到类对象的映射时出错
- 如何创建对象函数指针C++映射?
- 准确了解对象在内存中的映射方式
- 将包含不可复制对象的对插入到映射中
- 用unordered_map映射对象作为键
- 如何通过文件映射对象重新映射共享内存的视图?
- 文件映射对象和文件对象可以互换使用吗
- 如何从 std::映射'm'对象中返回 Iter 以'n'选定对象 (c++)
- 包含抽象基类ptr_map的映射对象
- C++ 映射对象的顺序
- 更新标准::映射对象数据
- C++ 内存泄漏与我的 std::映射 &对象和标准::矢量 &对象
- Windows CreateFileMapping:具有相同支持文件的不同文件映射对象
- 使用C++中的文件映射对象进行读取
- c++构造函数映射对象(已编辑)
- 在映射对象上定义自定义迭代器:神秘的"incomplete type"错误
- 在(c++) cocos2dx中添加映射对象到Vector
- c++代码中共享文件映射对象大小的问题