随笔分类 -  C++ Primer

摘要:11.2.1 定义关联容器 //声明空容器 map<string, size_t> word_count; //列表初始化 set<string> exclude = {"the","and","or"}; map<string, string> authors = { {"John","James 阅读全文
posted @ 2022-02-27 18:07 咪啪魔女 阅读(50) 评论(0) 推荐(0) 编辑
摘要:11.3.0 关联容器中额外的类型别名 11.3.1 关联容器迭代器 map的关键字是const的 解引用时得到的是value_type(即元素类型)的值的引用 map类型的元素是pair,map的vaule_type是pair<const first, second> 即不能通过迭代器改变map的 阅读全文
posted @ 2022-02-27 18:07 咪啪魔女 阅读(41) 评论(0) 推荐(0) 编辑
摘要:11.1.0 关联容器的类型 关联容器和顺序容器一样,都是模板类型,需要额外参数来指定类型 multi表示允许重复关键字 unordered表示关键字无序,内部是hash实现 map:存储“键-值”对,也叫关联数组 set:任何关键字只能出现一次 11.1.1 使用map //打印每个单词在输入中出 阅读全文
posted @ 2022-02-27 18:06 咪啪魔女 阅读(30) 评论(0) 推荐(0) 编辑
摘要:与其他容器不同,链表类型list和 forward_list定义了几个成员函数形式的算法,如下表所示。特别是,它们定义了独有的sort、merge、remove、reverse和unique。 通用版本的sort要求随机访问迭代器,因此不能用于list和forward_list,因为这两个类型分别提 阅读全文
posted @ 2022-02-27 18:05 咪啪魔女 阅读(23) 评论(0) 推荐(0) 编辑
摘要:10.5.1 5类迭代器 按操作分类,形成了一种层次,高类别的迭代器支持低类别的所有操作 对于向一个算法传递错误类别的迭代器的问题,很多编译器不会给出任何警告或提示。 输入迭代器(input iterator) 输入迭代器必须支持 用于比较两个迭代器的相等和不相等运算符(==、!=) 用于推进迭代器 阅读全文
posted @ 2022-02-27 18:04 咪啪魔女 阅读(27) 评论(0) 推荐(0) 编辑
摘要:除了为每个容器定义的迭代器之外,标准库在头文件 iterator 中还定义了额外几种迭代器。这些迭代器包括以下几种。 插入迭代器(insert iterator),这些迭代器被绑定到一个容器上,可用来向容器插入元素。 流迭代器( stream iterator):这些迭代器被绑定到输入或输出流上,可 阅读全文
posted @ 2022-02-27 18:04 咪啪魔女 阅读(35) 评论(2) 推荐(0) 编辑
摘要:泛型算法和容器一样,具有一致的结构 一般都接受一个”迭代器范围“ 理解算法最基本的方法就是了解他们是否 读取元素 改变元素 重排元素 10.2.1 只读算法 常见的几个只读算法 find count accumulate equal accumulate前两个参数接受一个迭代器范围,最后一个参数接受 阅读全文
posted @ 2022-02-27 18:03 咪啪魔女 阅读(32) 评论(0) 推荐(0) 编辑
摘要:10.3.1 向算法传递函数 作为一个例子,假定希望在调用elimDups(参见10.2.3节)后打印vector的内容。 此外还假定希望单词按其长度排序,大小相同的再按字典序排列。 为了按长度重排vector,我们将使用sort 的第二个版本,此版本是重载过的,它接受第三个参数,此参数是一个谓词( 阅读全文
posted @ 2022-02-27 18:03 咪啪魔女 阅读(44) 评论(0) 推荐(0) 编辑
摘要:基本说明 大多数算法都定义在头文件algorithm中 不直接操作容器,而是操作迭代器,所以具备普适性 举例:find算法 输入:迭代器范围以及查找值 返回值:找到则返回查找值的迭代器,否则返回end() 也可以操作string 操作数组 算法如何工作 访问序列中的首元素。 比较此元素与我们要查找的 阅读全文
posted @ 2022-02-27 18:02 咪啪魔女 阅读(42) 评论(0) 推荐(0) 编辑
摘要:何为适配器 适配器( adaptor)是标准库中的一个通用概念。容器、迭代器和函数都有适配器。 本质上,一个适配器是一种机制,能使某种事物的行为看起来像另外一种事物一样。 一个容器适配器接受一种已有的容器类型,使其行为看起来像一种不同的类型。例如,stack适配器接受一个顺序容器(除array或fo 阅读全文
posted @ 2022-02-23 11:38 咪啪魔女 阅读(62) 评论(0) 推荐(0) 编辑
摘要:.size():容器中有多少元素 .capacity():不重新分配内存时,可容纳多少元素 .reserve(n):分配至少能容纳n个元素的内存 n>capacity时会分配使得capacity >= n n<=capacity时什么也不做 reserve()永远不会减少容器的内存空间;shrink 阅读全文
posted @ 2022-02-23 11:37 咪啪魔女 阅读(30) 评论(0) 推荐(0) 编辑
摘要:9.5.1 构造string的其他方法:略 9.5.2 改变string的其他方法:略 9.5.3 string搜索操作:略 9.5.4 compare函数:略 9.5.5 数值转换 int main(){ string s = "pi = 3.14"; double d = stod(s.subs 阅读全文
posted @ 2022-02-23 11:37 咪啪魔女 阅读(35) 评论(0) 推荐(0) 编辑
摘要:9.2.0 容器库的操作层次 容器库在操作上形成了一种层次 某些操作是所有容器类型都提供的((参见表9.2,第295页)。 另外一些操作仅针对顺序容器(参见表9.3,第299页)、关联容器(参见表11.7,第388页)或无序容器(参见表11.8,第395页)。 还有一些操作只适用于一小部分容器。 在 阅读全文
posted @ 2022-02-23 11:36 咪啪魔女 阅读(47) 评论(0) 推荐(0) 编辑
摘要:9.3.1 向顺序容器添加元素 push_back 除了array和forward_list以外,都可以使用push_back 插入的是对象的值的拷贝,而不是对象本身 string s; s.push_back('a'); //等价于 s+='a' push_front list,forawrd_l 阅读全文
posted @ 2022-02-23 11:36 咪啪魔女 阅读(38) 评论(0) 推荐(0) 编辑
摘要:顺序容器的类型 顺序容器类型 描述 vector 可变长数组;支持随机访问;在尾部之外的位置插入元素较慢 string 和vector类似,但是专门用来保存字符;随机访问;尾部插入块 list 双向链表;顺序访问;在任何位置插入都很快 forward_list 单向链表;单向顺序访问;在任何位置插入 阅读全文
posted @ 2022-02-23 11:35 咪啪魔女 阅读(30) 评论(0) 推荐(0) 编辑
摘要:7.4.0 类定义时的处理流程 先编译成员的声明 所有成员可见后,编译函数体 7.4.1 一般的名字查找流程 在所在块内寻找声明,只找名字之前的部分 没找到则去外层作用域找 7.4.2 类成员的名字查找 同一般的名字查找流程,现在类内找,没找到再去外层找 typedef double Money; 阅读全文
posted @ 2022-02-20 08:26 咪啪魔女 阅读(63) 评论(0) 推荐(1) 编辑
摘要:7.5.1 构造函数初始化值列表 初始化与赋值 观察下面两段构造函数的代码 //初始化bookNo,units_sold,revenue Sale_data(const String &s, unsigned cnt, double price) : bookNo(s), units_sold(cn 阅读全文
posted @ 2022-02-20 08:26 咪啪魔女 阅读(33) 评论(0) 推荐(0) 编辑
摘要:7.1.1 定义Sale_data类 目标代码 弄懂下面的代码 #include<iostream> using namespace std; struct Sale_data{ //关于Sale_data对象的操作函数 string ibsn() const {return bookNo;} Sa 阅读全文
posted @ 2022-02-20 08:25 咪啪魔女 阅读(208) 评论(0) 推荐(0) 编辑
摘要:7.2.0 目标代码 #include<iostream> using namespace std; class Sale_data{ //为Sale_data的非成员函数所做的友元声明 friend istream &read (istream &, Sale_data &); friend os 阅读全文
posted @ 2022-02-20 08:25 咪啪魔女 阅读(34) 评论(0) 推荐(0) 编辑
摘要:使用函数指针 声明函数指针:int (*fp)(int, int); fp是一个指针,指向一个函数 函数的形参是两个int,返回类型是int 函数名作为值使用时,会自动转换为指针类型,取值符是可选的 int f(int, int); fp = f; fp = &f; 调用函数指针时,解引用符号是可选 阅读全文
posted @ 2022-02-20 08:20 咪啪魔女 阅读(40) 评论(0) 推荐(0) 编辑

more_horiz
keyboard_arrow_up light_mode palette
选择主题
点击右上角即可分享
微信分享提示