【发布时间】:2018-07-31 16:38:59
【问题描述】:
我有自己的“3DSolid”类,我正在尝试将项目插入到 Multimap 所以,我这样定义我的 Multimap:
std::multimap< 3DSolid, 3DSolid > &SolidsolidMapping;
我正在插入这样的项目:
SolidsolidMapping.insert( std::make_pair( solid1, solid2 ) );
其中solid1 和solid2 是我的类3DSolid 的对象。
所以,现在我收到一个关于“bool
所以,我这样定义运算符:
bool operator<( const 3DSolid& _Left, const 3DSolid& _Right )
{
return _Left < _Right;
}
然后,我没有收到任何编译错误。但是当我运行我的程序时,它崩溃了,因为我定义的运算符没有任何意义。我只想构造一个未排序的 Multimap。我不关心“运算符
如果有人可以建议我对代码的更改,我将非常高兴 提前致谢。
【问题讨论】:
-
我只想构造一个未排序的 Multimap。我不关心“运算符 您必须关心这一点,
multimap确实需要在插入的元素之间进行排序。 -
@Gaurav Sehgal:我尝试使用数据结构 std::unsorted_multimap,但我仍然收到错误,因为我使用的类 Object 不是典型的 C++ 类对象
-
如果您无法在不同的
3DSolid之间定义排序,则不能使用任何需要排序的容器(map、multimap等)。 -
“不是典型的 C++ 类对象”是什么意思?
标签: c++ data-structures