超载&#34;&lt;&#34;我想要存储在<map>中的类的运算符

时间:2015-10-18 10:42:04

标签: c++ stl

据我所知,map将数据保存在sort中并使用&#34;&lt;&#34;为此目的的运营商。如果我不超载,会发生什么?&#34;&lt;&#34;该班的操作员?

还有一个问题。我应该在类中还是在类外部编写重载函数?

提前致谢。

1 个答案:

答案 0 :(得分:4)

  

据我所知,map将数据保存在sort中并使用&#34;&lt;&#34;为此目的的运营商。

排序,但不是直接。 std::map<Key, T, Compare, Allocator>为此目的使用CompareCompare默认为std::less<Key>,而<通常默认使用std::less<Key>运算符。但是,即使在标准库实现中,也有一些情况<的行为与Compare不同。

  

如果我没有超载,会发生什么?&#34;&lt;&#34;该班的操作员?

这取决于。您可以将另一个类指定为std::less模板参数,以避免使用std::less。您可以添加<的专精,以避免使用<。但是,如果您不这样做,您通常会收到有关 var numInputs = parseInt(prompt("Please enter numbers seperated by a space end with -1")) var largestNum =0; var smallestNum = 9999; if (numInputs >0) { for (i=1; i<=numInputs; i++) { if (numInputs > largestNum) { largestNum = numInputs; } } } alert("The largest number entered was " + largestNum); if (numInputs >0) { for (i=1; i<=numInputs; i++) { if (numInputs < smallestNum) { smallestNum = numInputs; } } } alert("The smallest number entered was " + smallestNum); 未定义的错误消息。