核心区别是OOP将数据与算法封装在一起, 而GP追求将数据与算法分离开来, 让算法通过相同的接口操作不同的数据. GP的好处是能让算法团队和数据团队各自独立运作, 只要确定好沟通的接口即可....操作符重载相当于与内置类型的接口相统一, 而模板则是为了能应对各种各样的类型.如果我们有自己的数据, 只要我们也实现算法所需的操作符和用于操作数据的迭代器, 我们就也能调用STL的算法来操作我们自己的数据...进行操作符重载的时候, 主要要注意尽量不要重载&&, ||和,, 因为它们重载之后将失去短路求值和顺序求值的特性, 退化回不定序求值的函数操作....但对于模板类中的模板函数, 使用时则需要提供对应模板类的模板参数, 然后函数自己的模板实参由编译器自动推导. 在类外定义的时候需要提供两个模板标识符....这样的写法当编译器处理这个函数时, 会自动对特化函数先进行匹配, 当匹配特化函数时就会调用定义的特化函数版本, 直到所有失配才最后调用泛化版本.