摘要:
智能指针 shared_ptr 使用 上一篇 "智能指针是啥玩意" ,介绍了什么是智能指针。 这一篇简单说说如何使用智能指针。 一,智能指针分3类:今天只唠唠shared_ptr shared_ptr unique_ptr weak_ptr 二,下表是shared_ptr和unique_ptr都支持 阅读全文
摘要:
标准库 智能指针( smart pointer ) 是啥玩意儿 一,为什么有智能指针??? c++程序员需要自己善后自己动态开辟的内存,一旦忘了释放,内存就泄露。 智能指针可以帮助程序员 "自动释放" 自己开辟的内存。 二,从哪里看出来智能了??? 上面的代码把p交给智能指针auto_ptr管理后, 阅读全文
摘要:
标准库 map multimap元素访问 一,map,unordered_map下标操作 | 下标操作种类 | 功能描述 | | | | | c[k] | 返回关键字为k的元素;如果k不在c中,添加一个关键字为k的元素,并对其初始化 | | c.at(k) | 访问关键字为k的元素;若k不在c中,抛 阅读全文
摘要:
标准库 map set 删除 删除操作 有map如下: 删除方法: | 删除操作种类 | 功能描述 | | | | | cnt.erase(3); | 删除key为3的元素,并返回删除的元素的个数 | | cnt.erase(p); | p为迭代器,删除p指向的元素,并返回p之后元素的迭代器 | | 阅读全文
摘要:
标准库 map set 插入 一,插入操作 有map如下: 插入方法: | 插入操作种类 | 功能描述 | | | | | cnt.insert({"abc", 12}); | 直接用大括号 | | cnt.insert(make_pari("abc", 22)); | 用make_pair函数,返 阅读全文
摘要:
标准库 map set 大锅炖 一,关联容器有哪些 | 按关键字有序保存元素 | | | | | | map | 保存key和value | | set | 只保存key | | mulutimap | key可以重复出现 | | multiset | key可以重复出现 | | 无序集合 | | 阅读全文
摘要:
标准库 pair 介绍 问题:map里的元素由key和value组成,这个key和value的组合是什么类型呢??? 答案:pair类型 pair介绍: 它是模板 有2个公有成员可供访问。 first和second。 make_pair函数能返回一个pair 可以进行 ==,!=,, =运算 小例子 阅读全文
摘要:
标准库 set 自定义关键字类型与比较函数 问题:哪些类型可以作为标准库set的关键字类型呢??? 答案: 1,任意类型,但是需要额外提供能够比较这种类型的比较函数。 2,这种类型实现了 类型,注意是类型,不是变量 方式1:使用decltype,注意后面必须有 方式2:直接使用函数指针 代码块索引: 阅读全文
摘要:
标准库 插入迭代器 详解 插入迭代器作用:copy等函数不能改变容器的大小,所以有时copy先容器是个空的容器,如果不使用插入迭代器,是无法使用copy等函数的。 例如下面的代码就是错误的: lst2是个空的容器,copy函数不能扩容容器lst2,所以会发生运行时错误。 用插入迭代器就可以很好的解决 阅读全文
摘要:
标准库 bind 函数 详解 bind函数:接收一个函数名作为参数,生成一个新的函数。 arg_list中的参数可能包含入_1, _2等,这些是新函数newCallable的参数。 在这篇博客 "lambda 表达式 介绍" 中,讨论了find_if的第三个参数的问题,当时是用lambda表达式解决 阅读全文