11.3.1节练习 [练习11.16]代码 map<int, int> m; auto iter = m.begin(); iter ->second = ;…
11.2.1节练习 [练习11.7]代码: #include<iostream> #include<string> #include<vector> #include<map> using namespace std; void add_family(map<string, vector<string>> &familes, const string &str) { if (familes.find(str) == f…
目录 使用关联容器 关联容器概述 关联容器操作 无序容器 使用关联容器 关联容器与顺序容器有着根本的不同: 关联容器中的元素是按关键字来保存和访问的, 按顺序容器中的元素是按它们在容器中的位置来顺序保存和访问的. 关联容器支持高效的关键字查找和访问. 有两个主要的关联容器类型: map和set. map: map中的元素是一些关键字-值(key-value)对, 关键字起到索引的作用, 值则表示与索引相关联的数据. set: set中每个元素只包含一个关键字, set支持高效的关键字查询操作--…
练习答案 一.访问元素 关联容器额外类型别名  key_type 此容器类型的关键字类型 mapped_type 每个关键字关联的类型,只 适用于map mapped_type 对于set,与key_type相同对于map,为pair<const key_type, mapped_type> 二.关联容器迭代器 当解引用一个关联容器的迭代器时,我们会得到一个类型为容器的valued_type的值的引用.对map而言,value_type是一个pair类型,其first成员保存const的关键字…
一.介绍 1. Hashtable和bucket 由于unordered_map内部采用的hashtable的数据结构存储,所以,每个特定的key会通过一些特定的哈希运算映射到一个特定的位置,我们知道,hashtable是可能存在冲突的(多个key通过计算映射到同一个位置),在同一个位置的元素会按顺序链在后面.所以把这个位置称为一个bucket是十分形象的(像桶子一样,可以装多个元素). 所以unordered_map内部其实是由很多哈希桶组成的,每个哈希桶中可能没有元素,也可能有多个元素. 无…
关联容器的元素按照关键字来保存和访问,而顺序容器的元素是按照在容器中的位置来保存和访问 关联容器支持高效的关键字查找和访问 2种关联容器: map中的元素是关键字-值对(key-value对),关键字作为索引,值表示与索引相关的数据 set中的元素只包含关键字 8个关联容器: map 关联数组,保存关键字-值对 set 值保存关键字的容器 multimap 关键字可重复出现的map multiset 关键字可重复出现的set unordered_map 用哈希函数组织的map unordered…
C++PRIMER第五版练习题答案第一章 应该有很多小伙伴和我一样,闲来无事买了本C++的书自己啃,课后的练习题做的很揪心,这里我分享下我写的答案,希望能帮助到你,提供源码,就不跑了哈,毕竟现在是第一章,很很很基础,当看到后面,分享到后面的时候,注释会写详细点方便大家一起讨论思考~~ 1.1 int main() { return 0; } 1.2 int main() { return -1; } 1.3 #include <iostream> int main() { std::cout&…
第11章 泛型算法 1.概述 泛型算法依赖于迭代器,而不是依赖容器,需要指定作用的区间,即[开始,结束),表示的区间,如上所示 此外还需要元素是可比的,如果元素本身是不可比的,那么可以自己定义比较函数. 2.常用的泛型算法函数: fill,fill_n, copy, replace, sort, unique, count_if, stable_sort 此外在有一个谓词函数会结合以上的函数使用,像sort, count_if等 3.再谈迭代器 (1)插入迭代器 back_inserter, f…
第11章 使用类 1. 运算符重载是一种形式的C++多态. 2. 不要返回指向局部变量或临时对象的引用.函数执行完毕后,局部变量和临时对象将消失,引用将指向不存在的数据. 3. 运算符重载的格式如下: operatorop(argument-list); 可以使用函数表示法或运算符表示法来使用它. total = coding + fixing; total = coding.operator+(fixing); 4. 运算符重载的限制: 1)  重载后的运算符必须至少有一个操作数是用户定义的类…
练习11.1:描述map 和 vector 的不同. map是关联容器,vector是顺序容器,关联容器与值无关,vector则与值密切相关 练习11.2:分别给出最适合使用 list.vector.deque.map以及set的例子. list链表vector动态数组deque队列map映射set集合 练习11.3:编写你自己的单词计数程序. #include <iostream> #include <map> void words_count() { std::map<s…