前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OOP(object-oriented programming) vs GP(generic programming)

OOP(object-oriented programming) vs GP(generic programming)

原创
作者头像
ocean@32
发布2022-11-13 20:09:56
3240
发布2022-11-13 20:09:56
举报
文章被收录于专栏:C++ STL和泛型编程

OOP:对象+继承+虚函数,企图把data和method放到一起。

GP:有模板,企图把data和method分开,container是一种数据,algorithm是一种方法。

GP:可以让container和algorithm分开开发互不影响,algotithm通过iterator确定container的操作范围,并修改container中元素的值。

stl算法最终涉及元素本身的操作为比大小:algorithm + function object的例子

代码语言:c++
复制
bool strlong(const string& str1, const string& str2) {
    return str1.size() > str2.size();
}

template<typename _Tp, typename Compare>
inline const _Tp& max(const _Tp& a, const _Tp& b, Compare comp) {
    return comp(a, b) ? a : b;
}

补充两个个知识点:

list无法使用公共sort函数的原因是,list的iterator不是random access,前进和后退每次只能移动一个元素。

const加到函数之前,表示函数的返回值只能为右值,不能为左值。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档