|
|
1
7
它是作为一个函子实现的,即允许在对象上使用函数运算符(这就是std::set在引擎盖下面所做的)。这样做是STL和类似代码调用自定义对象的常见方法。(函数指针比函数对象(也称为函子)更受限制)
set是一个已排序的二叉树,因此它在每次插入时多次调用Unitless的()运算符,以确定每个长值应该去哪里。
|
|
|
2
7
|
|
|
3
2
他实现了一个用于std::set的自定义比较,它只比较单元即。数量模10。因为std::set是一个模板,所以它只是尝试调用看起来像函数的东西,不管它是否是函数。通过重载operator()可以使它像函数一样工作。
在实际的编码示例中,可能有一个小缺陷,因为该练习只是按单位对它们进行排序,但它可以很好地消除具有相同单位但实际上不是重复的数字。在您的示例代码中没有这样的示例(您有一个副本,但这是整个值的副本)。如果在4548之外还有3478,那么集合比较器会认为它们是相同的,不允许重复。 顺便说一下,我不确定set是什么,我称之为“关联”容器,它指的是键值对。集合中没有关联的值,只有键。 还有一点:operator()应该是const。 |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |