精华内容
下载资源
问答
  • C++标准模板库编程实战》介绍最新的C++14标准的API、库和扩展,以及如何将它们运用到C++14程序中。在书中,作者Ivor Horton 则阐述了什么是STL,以及如何将它们应用到程序中。我们将学习如何使用容器、迭代器,...
  • C++标准模板库编程实战 作者: (美)爱弗·霍顿(Ivor Horton) 出版社:清华大学出版社 ISBN:9787302455806 上架时间:2016-11-25 出版日期:2017 年1月 开本:16开 版次:1-1 所属分类:计算机 > 软件与程序设计 >...
  • C++标准模板库编程实战(附源码)含原文pdf+原书代码,是学习使用STL的不二之选
  • c++标准模板库编程实战》随书代码, 清华大学出版社,Ivor Horton著,郭小虎翻译。STL学习不可缺少的资料。需要自取。
  • C++标准模板库编程实战-书中所用代码C++标准模板库编程实战-书中所用代码
  • 畅销书作者、编程导师Ivor Horton经典巨作、畅销经典 经久不衰 全面升级至C++14,对《C++入门经典(第4版)》充分补充,从入门到精通C++,以*丰富翔实的经典习题案例深度解读C++
  • 属于经典的c++模板库编程实战随书代码,内容全面,经典著作。
  • C++标准模板库编程实战》介绍最新的C++14标准的API、库和扩展,以及如何将它们运用到C++14程序中。在书中,作者Ivor Horton 则阐述了什么是STL,以及如何将它们应用到程序中。我们将学习如何使用容器、迭代器,...
  • 为Using the C++ Standard Template Libraries 英文版本的PDF文档,作者为Ivor Horton,中文名称为《C++标准模板库编程实战》,可惜中文译本很多地方翻译的很生硬,因此建议对照英文原版阅读。本资源转载自网络,如...
  • 计划: 预计花几天时间看下《c++标准模板库编程实战》,并做好笔记; 完工时间: 2020年7月18日

    计划:

        预计花几天时间看下《c++标准模板库编程实战》,并做好笔记;

    完工时间:

        2020年7月18日

    展开全文
  • 只能接受array, vector, deque或标准数组中的元素;可能会改变相等元素的顺序 stable_sort 类似于sort(),但是保证不改变想等元素的顺序 partial_sort 部分排序 is_sorted_until 判断一个元素段是否存在 合并 ...

    摘要

    对容器的排序,合并,搜索和分区;

    详情

    排序

    函数名注释
    sort只能接受array, vector, deque或标准数组中的元素;可能会改变相等元素的顺序
    stable_sort类似于sort(),但是保证不改变想等元素的顺序
    partial_sort部分排序
    is_sorted_until判断一个元素段是否存在

    合并

    函数名注释
    merge合并2个序列并将结果保存到第三个序列中;返回的迭代器指向合并序列末尾的后一个位置
    inplace_merge合并同一个序列中连个连续有序的元素序列

    搜索

    函数名注释
    find在前两个参数指定的范围内查找和第三个参数相等的第一个对象
    find_if在前两个参数指定的范围内查找可以使第三个参数指定的谓词返回true的第一个对象,谓词不能修改传给它的对象
    find_if_not在前两个参数指定的范围内查找第三个参数指定的谓词返回false的第一个对象
    find_first_of在第一个序列中搜索第二个序列在第一个序列重第一次出现的任何元素
    adjacent_find用来搜索序列中2个连续相等的元素。用==运算符来比较连续的一对元素,返回的迭代器指向前2个相等元素中的第一个。如果没有一对相等的元素,这个算法返回这个序列的结束迭代器
    find_end在一个序列中查找最后一个和另一个元素段匹配的匹配项,也可以看作在一个元素序列中查找子序列的最后一个匹配项
    search和find_end相似,但它所查找的是第一个匹配项而不是最后一个
    serch_n会搜索给定元素的匹配项,它在序列中连续出现了给定的次数

    分区

    函数名注释
    partition在序列中分区元素会重新对元素进行排列,所有使给定谓词返回true的元素会被放在所有使谓词返回false的元素的前面
    partition以和stable_partition相同的的方式进行分区,但那些使谓词返回true的元素会被复制到一个单独的序列中,使谓词返回false的哪些元素会被复制到第三个序列中
    partition_point获取分区序列中第一个分区的结束迭代器
    binary_search二分查找
    lower_bound在前两个参数指定的范围内查找不小于第三个参数的第一个元素;也就是说,查找大于等于第三个参数的第一个元素
    equal_range找出有序序列中所有和给定元素相等的元素
    展开全文
  • stl介绍 详情 stl概念 容器(Containers Library):定义管理和存储数据的容器 迭代器(Itrators Library):定义迭代器,迭代器类似于指针的对象,通常被用于引用容器类的对象序列 算法库...

    摘要

    stl库介绍

     

    详情

    stl概念库

    • 容器库(Containers Library):定义管理和存储数据的容器
    • 迭代器库(Itrators Library):定义迭代器,迭代器类似于指针的对象,通常被用于引用容器类的对象序列
    • 算法库(Algorithms Library):定义一些使用比较广泛的通用算法,可以运用到容器中的一组元素
    • 数值库(Numerics Library):定义一些通用的数学函数和一些对容器元素进行数值处理操作

    知识点

    1.size_t:定义在cstddef头文件中,表示无符号整形

    2.size():在类模板中默认以内联的方式实现,所以不再需要外部定义

    容器

    • 序列容器(Sequence Containers):以线性组织的方式存储对象,和数组类似,但是不需要拦蓄的存储空间
    • 关联容器(Associative Containers):存储了一些和键关联的对象
    • 容器适配器(Container Adapters):提供了替换机制的适配类模板,可以用来访问基础的序列容器或关联容器

    容器在堆上存放对象,并且自动管理它们所占用的内存;

    迭代器

    • 输入迭代器(input iterators):提供对对象的只读访问,没有减量运算
    • 输出迭代器(output iterators):提供对对象的只写访问,没有减量运算
    • 正向迭代器(forward iterators):结合输入输出迭代器功能,可以随意多次用它进行读或写操作
    • 双向迭代器(bidirectional iterators):具有和正向迭代器同样的功能,但允许进行前向和后向遍历
    • 随机访问迭代器(random access iterators):提供了和双向迭代器同样的功能,但是支持对元素的随机访问

    迭代器适配器

    1.反向迭代器(reverse iterators):

    2.插入迭代器(insert iterators):

    • 后向插入迭代器(back_insert_iterator):vector, list, deque都有push_back(),将一个新的元素添加到容器尾部
    • 向前插入迭代器(front_insert_iterator:list, forward_list, deque都有push_front(),将一个新的元素添加到容器的头部
    • 插入迭代器(insert_iterator):用insert()插入新的元素

    3.移动迭代器(move iterators):指向一定范围内的元素,将某个范围内的类对象移动到目标范围,而不需要通过拷贝去移动

    迭代器运算

    • advance():将迭代器移动n个位置,例:std::advance(iter, 3)
    • distance():返回迭代器之间的距离, 例:std::distance(iter1, iter2)
    • next():获得距离迭代器n个位置的迭代器,例:std::next(iter, 3)
    • prev():获得迭代器反向偏移n个位置之后所指向的迭代器,例:std::prev(iter, 3)

    智能指针

    1.智能指针只能用来保存堆上分配的内存的地址

    2.不能像对原生指针那样,对智能指针进行一些自增或自减这样的操作

    1.unique_ptr<T>:唯一指针

        1_1.不可能有其他的unique_ptr<T>指向同一地址;

        1_2.不能以传值的方式将一个unique_ptr<T>对象传入函数中,因为他们不支持拷贝,必须使用引用的方式;

        1_3.可以通过交换2个unique_ptr<T>指针的方式来交换2个对象

    2.shared_ptr<T>:共享指针

        2_1.允许共享一个对象的所有权;

        2_2.只能通过拷贝构造函数或赋值运算符去赋值一个shared_ptr<T>对象;

    3.weak_ptr<T>:弱引用指针

        3_1.只能从shared_ptr<T>对象创建;

        3_2.不会增加shared_ptr<T>对象的引用机制,当最后一个shared_ptr<T>引用被释放或指向一个不同的地址时,他们所指向的对象的内存被释放,即使相关的weak_ptr<T>可能仍然存在

    算法

    • 非变化序列运算(不改变值): find(), count(), mismatch(), search(), equal()
    • 可变序列运算(改变值): swap(), copy(), transform(), replace(), remove(), reverse(), rotate(), fill(), shuffle()
    • 改变顺序运算(改变顺序): sort(), stable_sort(), binry_search(), merge(), min(), max()

    lambda表达式

    【捕获列表】(参数列表)mutable -> 返回类型 { 主体 }

    • 捕获列表:列出了在闭合区域不活的变量,变量可以通过值引用或引用的方式捕获
    • 参数列表:确定在lambda被调用时,传给它的值得类型和个数。可以指定默认参数值,参数列表可以为空
    • mutable:可选,说明不活的变量的副本是否可以修改
    • 返回类型:可选,当省略时,默认是返回值得类型。如果没有任何返回值,返回类型是void
    • 主体:函数实现

    如果想用引用的方式捕获,需要在每一个名字的前面加上一个 & 前缀;

     

    总结

    • stl定义类模板,作为其他对象的容器
    • stl定义迭代器,一种行为像指针的对象
    • 反向其实迭代器指向序列的最后一个元素,方向结束迭代器指向第一个元素的前一个位置
    • iterator头文件定义了一些全局函数,可以从容器,数组,任何支持迭代器的独享得到一些迭代器
    • 可以使用流迭代器转换流对象中给定类型的数据
    • stl定义了一些实现了算法的函数模板,可以运用到由迭代器指定的一段元素上
    • 智能指针是一种表现有些像指针的对象
    • lambda表达式定义了一个匿名函数
    • 能够用定义在functional头文件中的std::function<>模板类型,去指定任意种类的,有给定函数签名的可调用实体
    展开全文
  • 摘要 详情 总结 set容器保存的对象用他们自己作为键 set容器存储的T类型对象是有序的,默认使用less<...容器保存对象的方式和set相同,但对象并不是唯一的 如果2个对象是相等的,那么他们在set或multiset中...

    摘要

     

    详情

     

    总结

    • set容器保存的对象用他们自己作为键
    • set容器存储的T类型对象是有序的,默认使用less<T>对对象排序
    • multiset<T>容器保存对象的方式和set相同,但对象并不是唯一的
    • 如果2个对象是相等的,那么他们在set或multiset中会被看成同一元素。
    • unordered_set<T>容器保存T类型的对象,并且它们是唯一的,它们的位置由对象的哈希值确定。
    • unordered_multiset<T>容器中的对象位置也是由对象的哈希值确定的,但对象不需要是唯一的。
    • 无序set容器用==operator来决定两个对象是否相等,
    展开全文
  • C++标准模板库编程实践练习题 第一章 代码仅供参考 practice1 编写一个程序,它定义了一个标准的数组:用你选择的一些词去初始化字符串对象,然后用迭代器一个一行地列出数组的内容 #include&lt;iostream&gt...
  • 摘要 详情 总结 ...容器可以存放N个类型为T的元素 ...但在序列内部添加或删除元素会变慢,因为需要移动元素 可以使用索引来访问vector中的元素,或者调用会检查索引的成员函数at() ... array, vector, ..
  • C++编程语言标准模板库STL的介绍,包括各容器功能、原理、实现技术、技巧等
  • 摘要 检查序列中元素的属性的算法 计算序列中有指定书香的元素个数的算法 比较两个序列中元素的算法 用来复制或移动序列的算法 设置或改变序列中元素的算法 详情 检查元素属性 ...返回在前2个参数指定的范围内,有多
  • 有如下3个定义了随机数引擎的类模板: mersenne_twister_engine:能够生成最高质量的随机序列,但它是这2个类模板中最慢的. linear_congruential_engine:最简单且最快,但序列的质量比其他两个引擎差. subtract_...
  • 容器适配器是一个封装了序列容器的类模板,它在一般序列容器的基础上提供了一些不同的功能 详情 容器适配器类别 stack<T>是一个封装了deque<T>容器的适配器类模板,默认实现的是一个后入先出(LIFO)...
  • 摘要 详情 总结 pair对象封装了一个任意类型的对象 tuple模板类型的实例可以封装任意个数不同类型的对象 map容器是以pair对象的形式来保存键/对像对元素的 map容器保存的元素有唯一的键值,默认使用 multimap包含的...
  • C++标准模板库

    2014-07-10 11:48:56
    作为C++标准库相当重要的一部分,STL提供一系列组件操作。它主要可以分为容器、迭代器、基本算法、函数对象以及内存分配器和配接器六个部分。整个STL的代码都采用模板函数以及模板类的方式实现,具有高度的通用...
  • 英文原版C++标准模板库This book presents ideas, concepts, solutions, and examples from many sources. In a way it does not seem fair that my name is the only name on the cover. Thus, I'd like to thank ...
  • C++ STL标准模板库-优秀的C++标准库 黄强老师,国家软件设计师,软件...
  • 精通 S T L(C++标准模板库) 能众软件,能众教育创始人,毕业于山东大...
  • c++编程实战宝典

    2019-02-15 14:10:20
    c++实战编程,包括c++基础知识、面对对象基本编程c++中的标准库和模板库、高级主题、开发实战等5大篇
  • C++模板编程

    千次阅读 2018-06-13 09:42:22
    所谓的元编程就是编写直接生成或操纵程序的程序,C++模板为C++语言提供了元编程的能力。模板使 C++ 编程变得异常灵活,能实现很多高级动态语言才有的特性(语法上可能比较丑陋,一些历史原因见下文)。普通用户对 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,322
精华内容 1,728
关键字:

c++标准模板库编程实战

c++ 订阅
友情链接: 菜单使用的例子.zip