第十一章关联容器

GGBeng GGBeng     2022-09-23     705

关键词:

11.1

map:存储关键字-值(key-value)对的容器,关键字起到索引的作用,值则表示与索引相关联的数据;关键字是唯一、有序存储的

vector:存储单一类型元素的容器;元素是按添加顺序存储的

 

11.2

list:频繁在任意处插入/删除元素但不要求有随机访问能力时

vector:在尾部插入/删除元素且要求具有随机访问能力时

deque:在首尾插入/删除元素且要求具有随机访问能力时

map:统计每个单词在输入中出现的次数

set:查找集合中是否包含某个数

 

11.3

技术分享
 1 #include <iostream>
 2 #include <fstream>
 3 #include <iterator>
 4 #include <vector> 
 5 #include <string>
 6 #include <deque>
 7 #include <list> 
 8 #include <forward_list>
 9 #include <stack>
10 #include <queue>
11 #include <algorithm> 
12 #include <functional>
13 #include <map>
14 #include <set> 
15  
16 using namespace std;
17 using namespace std::placeholders;
18 
19 int main()
20 {
21        map<string, int> jzd;
22        string word;
23        while (cin >> word) {
24            ++jzd[word];
25        }
26        for (auto &i : jzd) {
27            cout << i.first << " occurs about " << i.second << (i.second > 1 ? "times.
" : "time
"); 
28        }
29     return 0;
30 }
View Code

 

11.4

技术分享
 1 #include <iostream>
 2 #include <fstream>
 3 #include <iterator>
 4 #include <vector> 
 5 #include <string>
 6 #include <deque>
 7 #include <list> 
 8 #include <forward_list>
 9 #include <stack>
10 #include <queue>
11 #include <algorithm> 
12 #include <functional>
13 #include <map>
14 #include <set> 
15 #include <cctype>
16  
17 using namespace std;
18 using namespace std::placeholders;
19 
20 int main()
21 {
22        map<string, int> jzd;
23        string word;
24        while (cin >> word) {
25            for (auto &i : word)
26             if (i <= Z && i >= A)    i = tolower(i);
27         for (auto it = word.begin(); it != word.end(); ++it) {
28             if (ispunct(*it)) {
29                 it = word.erase(it);
30                 --it;
31             }
32         }
33            ++jzd[word];
34        }
35        for (auto &i : jzd) {
36            cout << i.first << " occurs about " << i.second << (i.second > 1 ? "times.
" : "time
"); 
37        }
38     return 0;
39 }
View Code 

 

11.5

map:每个元素都是一个关键字-值对,初始化时必须提供关键字类型和值类型

set:每个元素只是一个关键字,没有值,元素类型就是关键字类型

 

11.6

set:元素都是唯一有序的

list:插入/删除元素很方便

 

11.7

技术分享
 1 #include <iostream>
 2 #include <fstream>
 3 #include <iterator>
 4 #include <vector> 
 5 #include <string>
 6 #include <deque>
 7 #include <list> 
 8 #include <forward_list>
 9 #include <stack>
10 #include <queue>
11 #include <algorithm> 
12 #include <functional>
13 #include <map>
14 #include <set> 
15 #include <cctype>
16  
17 using namespace std;
18 using namespace std::placeholders;
19 
20 int main()
21 {
22        map<string, vector<string>> imap;
23        string name1, name2;
24        while (cin >> name1) {
25            cin >> name2;
26            imap[name1].push_back(name2);
27        }
28        for (auto &i : imap) {
29            for (auto &j : i.second) {
30                cout << i.first << " " << j << endl;
31            }
32            cout << endl;
33        }
34     return 0;
35 }
View Code

 

11.8

技术分享
 1 #include <iostream>
 2 #include <fstream>
 3 #include <iterator>
 4 #include <vector> 
 5 #include <string>
 6 #include <deque>
 7 #include <list> 
 8 #include <forward_list>
 9 #include <stack>
10 #include <queue>
11 #include <algorithm> 
12 #include <functional>
13 #include <map>
14 #include <set> 
15 #include <cctype>
16  
17 using namespace std;
18 using namespace std::placeholders;
19 
20 void use_set(const vector<string> &vec)
21 {
22     set<string> iset(vec.begin(), vec.end());
23     for (auto &i : iset)    cout << i << " ";
24     cout << endl;
25 }
26 
27 void use_vector(const vector<string> &vec)
28 {
29     vector<string> ivec(vec.begin(), vec.end());
30     //unique必须要先sort过 
31     sort(ivec.begin(), ivec.end());
32     vector<string>::iterator it = unique(ivec.begin(), ivec.end());
33     ivec.erase(it, ivec.end());
34     for (auto &i : ivec)    cout << i << " ";
35     cout << endl;
36 }
37 
38 int main()
39 {
40     vector<string> vec = {"scout", "peanut", "jack", "peanut", "amazon", "jack", "demo"};
41        use_set(vec);
42        use_vector(vec);
43     return 0;
44 }
View Code

 

11.9

 

第十一章持有对象

一、基本概念  Java容器类类库的用途是“保存对象”,并将其划分为两个不同的概念:    1)Collection。一个独立元素的序列,这些元素都服从一条或多条规则。List必须按照插入的顺序保存元素,而Set不能有重复元素。Qu... 查看详情

第十一章

因为是手机上传,有些图没有上传好,晚上回去重新弄。 查看详情

第十一章网络编程

--------------------------------------------------------Sun11Feb13:30:10GMT2018--------------------------------------------------------第十一章网络编程11.1Theclient-ServerprogrammingModelThefundamentaloperati 查看详情

《java编程思想》学习笔记——第十一章持有对象

    JAVA容器类类库的用途是"保存对象",并将其划分为两个不同的概念:    1)Collection。一个独立元素的序列,这些元素都服从一条或多条规则。List必须按照插入的顺序保存元素,而Set不能用重复元... 查看详情

第十一章

一.分组查询   1.语法    SELECT...FROM...GROUPBY...    --分组查询Groupby    selectCOUNT(*)as学生人数,GradeIdas年级编号fromStudentgroupbyGradeId&n 查看详情

高数(a)下第十一章(持续更新)

11.1 11.2 查看详情

第十一章linq

DataLibusingSystem;usingSystem.Collections.Generic;namespaceWrox.ProCSharp.LINQ{[Serializable]publicclassTeam{publicTeam(stringname,paramsint[]years){this.Name=name;this.Years=newList<int>(years 查看详情

html第十一章总结

#第十一章总结:本章的标题为:layoutandpositioningArrangingElement##前言:这一章节,通过已经知道的boxmodel的概念,进行讲述关于layout的知识,并且通过这些知识进行创造专业的设计和multicolumnlayouts.##谈谈Flow###对于blockelement*对blockeleme... 查看详情

第十一章多元线性回归与相关分析

  查看详情

第十一章线程

第十一章线程11.3线程标识每个线程也有一个线程ID,线程ID只有在它所属的进程上下文中才有意义。/* 比较两个线程ID,相等返回非0数值,否则返回0*/#include<pthread.h>intpthread_equal(pthread_ttid1,pthread_ttid2); /* 获得自身... 查看详情

第十一章

(1)1.万物皆对象:(地球上有什么?我们会不自觉的将地球上的事物归为具体类别) 2.对象:顾客   ,   收银员;               官方定义:用来... 查看详情

第十一章笔记

                                 &n 查看详情

第十一章习题答案

第十一章练习题答案?1.如何把/etc/passwd中用户uid大于500的行给打印出来?awk-f‘:‘‘$3>500‘/etc/passwd?2.awk中nr,nf两个变量表示什么含义awk-f‘:‘‘{print$nr}‘/etc/passwd会打印出什么结果出来?nr表示行数,nf表示一共有多少段?awk-f‘:... 查看详情

“全栈2019”java第十一章:标识符

...开发环境JDKv11IntelliJIDEAv2018.3文章原文链接“全栈2019”Java第十一章:标识符下一章“全栈2019”Java第十二章:变量学习小组加入同步学习小组,共同交流与进步。方式一:关注头条号Gorhaf,私信“Java学习小组”。方式二:关注公... 查看详情

第十一章:dom扩展

DOM扩展选择符APIquerySelector方法querySelectorAll方法matchesSelector方法元素遍历HTML5与类相关的补充getElementsByClassName方法classList属性焦点管理HTMLDocument的变化readyState属性兼容模式head属性字符集属性自定义数据属性插入标记innerHTML属性ou... 查看详情

第十一章

一、理解什么是类和对象万事万物皆对象   1、属性——对象具有的特征(特点)   2、方法——对象可执行的操作(能干什么事)   3、对象的定义:是一个客观存在的,看的见或摸得着的实体,... 查看详情

第十一章

 “Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理。SELECT列表中只能包含:1.被分组的列2.位... 查看详情

第十一章:持有对象(代码片段)

Collection  List    ArrayList              indexOf,contains,remove,removeAll都会用到equals方法      subList所产生的列表幕后就是初始列表      retainAll方法所产生的行为依赖于equals方法      注... 查看详情