近期学习了折半搜索和单调栈和运算符的重载。
(1)折半搜索的中心思想,通俗的来说,就是对于一个序列,将它分成两份,对于这两部分,分别进行搜索,搜索以后,再将前后两部分的答案序列合并起来,得到最终答案。
由于搜索的时间复杂度是指数级的,往往在做题过程中会遇到超时问题,而折半搜索却可以大大减少时间。
(2)单调栈和一般栈的最大区别在于单调栈在满足栈先进先出的特性下,同时满足了栈内元素单调性,
单调栈最常用来距离该元素最近或最远的元素位置,如:
寻找其左侧第一个比他大的元素的位置,
(3)运算符的重载:
为解决类对象之间的运算,而运用运算符重载。
【 . .* :: ?: sizeof 】不能重载。
且运算符重载,
(1)不改变运算符的优先级
(2)不改变运算符的结和性
(3)不改变运算符所需要的操作数的个数
重载运算符时,所用成员函数和友元函数的关键在于成员函数有this指针,友元函数无this指针。
注意!!前置形式的重载运算符和后置形式是不一样的。