C++ Primer学习总结 第11章 关联容器

第11章 关联容器

1.    使用map的简单例子:

运行结果为:

2.    初始化map和set:

3.    set与multiset的区别:

4.    使用map和set时,其元素类型必须是定义了严格弱序的(即定义了<号比较的),如果元素类型没有定义<号操作也可以通过外部函数来比较:

5.    pair类型:pair是一个用来生成特定类型的模板. pair的默认构造函数对数据成员进行值初始化.

6.    遍历map和set关联容器:

7.    如何往set和map中添加指定元素:

注意:map中insert插入元素的返回值是一个pair对象.该pair对象的first成员是一个指向插入元素的迭代器,second成员是一个标志是否插入成功的bool值.

8.    向multimap中添加元素:

9.    从map中删除元素:

从multimap中删除元素的方式与map一模一样.

10.  map的下标操作,如map[“a”]:

如果”a”在map中,该操作将返回”a”对应的值. 否则该操作将在map中插入关键字”a”且对值进行值初始化.

11.  在map或multimap中查找指定元素.

有下面5个成员函数可用:

c.find(k): 返回key==k的迭代器

c.count(k): 返回key==k的元素个数

c.lower_bound(k): 返回key>=k的第一个元素的迭代器

c.upper_bound(k): 返回key>k的第一个元素的迭代器

c.equal_range(k): 返回key==k的左闭合右开迭代器的pair对象,该pair对象包含两个迭代器,首迭代器指向map中符合要求的第一个pair对象,second迭代器指向map中符合要求的最后一个pair对象的后一个位置。

时间: 2024-12-05 15:04:25

C++ Primer学习总结 第11章 关联容器的相关文章

《C++primer》v5 第11章 关联容器 读书笔记 习题答案

11.1 map是关联容器,vector是顺序容器 11.2 略 11.3 int main() { map<string,int> word; string s; while(cin>>s) word[s]++; for(auto i:word) cout<<i.first<<" "<<i.second<<endl; return 0; } 11.4 void convers(string &s) { s

第11章 关联容器

map,管理数组,存储“关键字-值” set,简单集合,存储“关键字” 四个关联容器的头文件map.set.unordered_map.unordered_set 关联容器有8种,特点如下: 每个容器都是set或者map 分为允许关键字重复(multi)和不允许关键字重复 顺序保存和无序保存(unordered,哈希函数组织的结构) unordered_multiset是一个允许关键字重复,元素无序保存的集合 set是一个要求关键字不重复,元素有序保存的集合 map<string, size_t

C++ Primer学习总结 第9章 顺序容器

第9章 顺序容器 1.    顺序容器如果有一个只需要容器大小参数的默认构造函数,该函数使用的是元素的默认构造函数来构造每个元素对象,如果该容器的元素没有默认构造函数,那么就不能使用这个容器的该构造函数P294: 2.    容器进行拷贝初始化时,两个容器的元素必须同类型. 但是如果列表初始化,或迭代器范围初始化容器,那么只要求列表中元素或迭代器所指元素可以转化为容器的元素即可. 3.    容器类型可以直接通过=号赋值(包括array容器数组类型): 注意:assign仅适用于顺序容器(但不适

C++primer(第五版)第九章 顺序容器(容器的运用及其部分习题解答,C++11特性总结,重点章节内容较多)

顺序容器:为程序员提供了控制元素存储和访问顺序的能力.(无序容器)           1.顺序容器的概述           A.顺序容器的类型           vector:可变大小数组.支持快速随机访问.在尾部之外的位置插入或删除元素可能很慢.          deque:双端队列.支持快速随机访问.在头尾位置插入/删除速度很快.           list:双向链表.只支持双向顺序访问.在list中任何位置进行插入/删除操作速度都很快.          forword_list

锋利的jQuery第2版学习笔记8~11章

第8章,用jQuery打造个性网站 网站结构 文件结构 images文件夹用于存放将要用到的图片 styles文件夹用于存放CSS样式表,个人更倾向于使用CSS文件夹 scripts文件夹用于存放jQuery脚本,个人更倾向于使用JS文件夹存放所有的js及jQuery脚本 编写CSS样式 推荐首先编写全局样式,接着编写可大范围内重用的样式,最后编写细节样式,这样根据CSS最近优先原则,可以较容易地对网站进行从整体到细节样式的定义 第9章,jQuery Mobile jQuery Mobile主要

第十一章 关联容器

使用关联容器 使用set 1 #include<iostream> 2 #include<string> 3 #include<map> 4 5 using namespace std; 6 7 int main() 8 { 9 map<string, size_t> word_count; 10 string word; 11 while (cin >> word) 12 ++word_count[word]; 13 for (const au

C++11(10):关联容器

关键字有序保存元素, map,关联数组,保存关键字-值对, set,关键字即值,只保存关键字的容器 multimap,关键字可重复出现 multiset, 无序集合 unordered_map,用哈希函数组织的map unordered_set,用哈希函数组织的set unordered_multimap,哈希组织的map:关键字可重复出现 unordered_multiset,哈希组织的set:关键字可重复出现 通常map称为关联数组,与数组不同的是其下标不必是整数 //统计每个单词在输入中出

【C语言学习】《C Primer Plus》第11章 字符串和字符串函数

学习总结 1.字符串(character String)是以空字符串(\o)结尾的char数组. 2.gets()方法代表get String,它从系统的标准输入设备(通常是键盘)获取一个字符串,当字符串遇到换行符(\n)时就结束输入,丢弃\n符号,然后在字符串后添加空字符(\0)然后把这个字符串交给调用它的程序.Gets方法的构造原型是 char *gets(char *s){ … If(EOF) return NULL;//伪代码,说明用 … return s; } 从函数原型可以看,get

C++ Primer学习总结 第6章 函数

第6章 函数 1.    函数最外层作用域中的局部变量不能使用与函数形参一样的名字,因为它们属于同一个作用域范围. 2.    局部静态变量的生命周期: 在整个程序的执行路径第一次经过对象定义语句时初始化,并且直到整个程序终止时才被销毁,在此期间即使对象所在函数结束执行也不会对它有影响. 3.    如果重载的函数的参数只有顶层const区别,那么是错误的: 如果有底层const区别可以算作重载. 4.    如果函数的参数要使用引用(且不会改变引用对象的值),那么应该定义成常量引用. 因为使用