C++泛型编程和STL
文章平均质量分 85
C++的模板、STL常用容器、STL函数对象、STL常用算法。
NewsomTech
知之非艰,行之惟艰。
展开
-
C++ STL常用容器:string、vector、deque、stack、queue、list、set/multiset、map/multimap
文章目录1 string容器1.1 string基本概念1.2 string构造函数1.3 字符串长度【size()、length()、strlen()】1.4 string赋值操作【operator=、assign()】1.5 string字符串拼接【operator+=、append()】1.6 string查找【find()、rfind()】和替换【replace()】1.7 string字符串比较【compare()】1.8 string字符存取【operator[]、at()】1.9 string原创 2021-02-26 02:37:28 · 1148 阅读 · 0 评论 -
C++ STL常用算法:遍历、查找、排序、拷贝与替换、算术生成、集合算法
文章目录0 STL算法1 常用遍历算法【for_each、transform】1.1 for_each【遍历容器元素】1.2 transform【将源容器的元素搬运至目标容器】2 常用查找算法【find、find_if、adjacent_find、binary_search、count、count_if】2.1 find2.2 find_if2.3 adjacent_find2.4 binary_search2.5 count2.6 count_if3 常用排序算法【sort、random_shuffle、原创 2021-03-01 01:10:42 · 526 阅读 · 0 评论 -
C++泛型编程(一):函数模板
文章目录1 函数模板2 函数模板注意事项3 函数模板练习4 普通函数与函数模板的区别5 普通函数与函数模板的调用规则6 模板的局限性模板:建立通用的模具,可提高复用性。特点:(1)模板是一个框架,不可直接使用(需确定具体类型);(2)模板的通用性不是万能的。C++中的泛型编程思想 ,通过模板实现,包括函数模板和类模板等2种模板机制。1 函数模板作用:将类型参数化(将固定类型抽象为通用类型),提高代码复用性。建立一个通用函数,声明与定义函数时不具体指定返回值类型和形参类型,使用虚拟类型表示原创 2021-02-19 00:37:42 · 355 阅读 · 2 评论 -
C++泛型编程(二):类模板
文章目录1 类模板语法2 类模板与函数模板区别3 类模板中成员函数创建时机4 类模板对象做函数参数5 类模板与继承6 类模板成员函数类外实现7 类模板分文件编写8 类模板与友元9 类模板案例1 类模板语法作用:建立一个通用类,定义类*具体指定返回值类型和形参类型,使用虚拟类型表示;调用函数时再确定其具体类型。语法 :template<typename T>类解释:template — 声明创建模板typename — 表面其后面的符号是一种数据类型,可以用class代替原创 2021-02-20 02:48:09 · 558 阅读 · 2 评论 -
C++类型转换(static_cast、dynamic_cast、const_cast、reinterpret_cast)
文章目录原创 2021-02-20 21:45:36 · 515 阅读 · 0 评论 -
C++异常(异常的基本语法、栈解旋unwinding、异常接口声明、异常变量的生命周期、异常的多态使用、C++系统标准异常库)
文章目录原创 2021-02-21 17:28:23 · 683 阅读 · 3 评论 -
C++输入流和输出流
文章目录原创 2021-02-21 23:48:56 · 649 阅读 · 0 评论 -
C++ STL(一):STL的基本概念
文章目录1 STL基本概念2 STL的六大组件3 STL中容器、算法、迭代器3.1 容器(container)3.2 算法(algorithms)3.3 迭代器(iterator)4 容器、算法、迭代器入门4.1 vector存储内置数据类型4.2 Vector存储自定义数据类型4.3 vector容器嵌套vector容器C++的面向对象和泛型编程思想,目的是提升代码的复用性。为避免重复造轮子,建立数据结构和算法的统一标准,诞生了STL。封装:将属性和行为抽象并作为整体的类。继承:子类继承父类原创 2021-02-22 02:22:24 · 404 阅读 · 0 评论 -
C++ STL(二):string容器
文章目录原创 2021-02-22 17:54:06 · 207 阅读 · 0 评论 -
C++ STL(三):vector容器
文章目录原创 2021-02-23 01:42:40 · 387 阅读 · 0 评论 -
C++ STL(四):deque容器
文章目录原创 2021-02-23 23:07:25 · 589 阅读 · 0 评论 -
C++ STL(五):stack容器
文章目录原创 2021-02-23 23:53:53 · 125 阅读 · 0 评论 -
C++ STL(六):queue容器
文章目录原创 2021-02-24 00:46:50 · 248 阅读 · 0 评论 -
C++ STL(七):list容器
文章目录原创 2021-02-25 01:11:16 · 1054 阅读 · 0 评论 -
C++ STL(八):set/multiset容器
文章目录原创 2021-02-25 22:49:31 · 181 阅读 · 0 评论 -
C++ STL(九):map/multimap容器
文章目录原创 2021-02-26 02:35:00 · 241 阅读 · 0 评论 -
C++ STL(十):函数对象/仿函数(函数对象、谓词、内建函数对象)
文章目录原创 2021-02-26 22:07:33 · 409 阅读 · 0 评论 -
C++ STL(十一):适配器(函数对象适配器、取反适配器、函数指针适配器、成员函数适配器)
文章目录1 函数对象适配器1 函数对象适配器作用:修饰函数对象/仿函数,提供适配功能。问题案例:使用for_each算法和函数对象/仿函数遍历容器的元素时:①若希望原容器元素经某种运算(如与给定值100进行加法运算)后,再输出运算结果;②给定值可作为operator()函数的参数传递(如由用户键盘输入,而非在operator()函数体内使用固定值100);③for_each(iterator begin, iterator end, _Fn _Func)函数只支持3个参数,且第3个参数需传入原创 2021-02-27 21:35:49 · 769 阅读 · 1 评论 -
C++ STL(十二):常用遍历算法(for_each、transform)
文章目录0 STL算法1 常用遍历算法简介【for_each、transform】2 for_each【遍历容器元素及统一逻辑处理】3 transform【将源容器的元素全部拷贝至目标容器】0 STL算法STL算法主要由<algorithm> <functional> <numeric>等头文件组成。<algorithm>:包括遍历、查找、排序、比较、交换、复制、修改等操作的函数模板。<functional>:包括函数对象/仿函数相关的类原创 2021-03-01 00:51:50 · 1278 阅读 · 0 评论 -
C++ STL(十三):常用查找算法(find、find_if、adjacent_find、binary_search、count、count_if)
文章目录0 常用查找算法简介【find、find_if、adjacent_find、binary_search、count、count_if】1 find【查找指定元素是否存在】2 find_if【按条件查找元素是否存在】3 adjacent_find【查找相邻且重复的元素】4 binary_search【二分查找法判断指定元素是否存在】5 count【统计指定元素的个数】6 count_if【按条件统计指定元素的个数】0 常用查找算法简介【find、find_if、adjacent_find、bina原创 2021-03-01 00:55:03 · 457 阅读 · 0 评论 -
C++ STL(十四):常用排序算法(sort、random_shuffle、merge、reverse)
文章目录0 常用排序算法简介【sort、random_shuffle、merge、reverse】1 sort【对容器元素排序】2 random_shuffle【洗牌:对指定范围的容器元素随机排序】3 merge【合并两个容器的元素,并存储至新容器中】4 reverse【反转容器元素】0 常用排序算法简介【sort、random_shuffle、merge、reverse】算法简介:sort:对容器元素排序。random_shuffle:对指定范围的容器元素随机排序,即洗牌。merge:合并两个原创 2021-03-01 00:57:30 · 773 阅读 · 3 评论 -
C++ STL(十五):常用拷贝算法(copy)和替换算法(replace、replace_if、swap)
文章目录0 常用拷贝【copy】和替换【replace、replace_if、swap】算法简介1 copy【拷贝容器元素至另一容器】2 replace【将指定值全部替换为新值】3 replace_if【将满足指定条件的元素全部替换为新元素】4 swap【互换两个同类型容器的元素】0 常用拷贝【copy】和替换【replace、replace_if、swap】算法简介算法简介:copy:拷贝容器元素至另一容器。replace:将容器内的指定值全部替换为新值。replace_if:按条件将容器内指原创 2021-03-01 01:01:07 · 819 阅读 · 0 评论 -
C++ STL(十六):常用算术生成算法(accumulate、fill)
文章目录0 常用算术生成算法简介【accumulate、fill】1 accumulate【计算容器元素的累和】2 fill【向容器填充指定元素】0 常用算术生成算法简介【accumulate、fill】算法简介:accumulate:计算容器指定区间内元素的累和。fill:向容器填充指定元素。注:算术生成算法属于小型算法,使用时需包含头文件#include <numeric>。1 accumulate【计算容器元素的累和】作用:计算容器指定区间内元素的累和。注:使用a原创 2021-03-01 01:04:25 · 264 阅读 · 0 评论 -
C++ STL(十七):常用集合算法(set_intersection、set_union、set_difference)
文章目录0 常用集合算法简介【set_intersection、set_union、set_difference】1 set_intersection【将两个容器的交集存储至新容器】2 set_union【将两个容器的并集存储至新容器】3 set_difference【将两个容器的差集存储至新容器】0 常用集合算法简介【set_intersection、set_union、set_difference】算法简介:set_intersection:将两个容器的交集存储至新容器。set_union:原创 2021-03-01 01:07:33 · 2362 阅读 · 2 评论