C++Primer第五版 习题答案 第十一章关联容器

本文为博客 VIP 文章,开通 VIP 后可阅读全文

开通 VIP

11.1

map是关联式容器,元素式按关键字保存和访问的;
vector是顺序容器,其元素是按照它在容器中的位置来保存和访问的;

11.2

list:插入较多情况;
vector:动态数组;
deque:需要头部和尾部增删的情况;
map:字典;
set:添加忽略关键字;

11.3

#include<iostream>
#include<string>
#include<map>

using namespace std;

int main() {
   
   
	map<string, size_t> word_count;
	string words;
	while (cin>>words)
	{
   
   
		++word_count[words];
	}
	for (const auto &s : word_count)
		cout << s.first << " occurs  " << s.second << ((s.second > 1) ? " times " : " time ") << endl;
	return 0;
}

11.4

#include<iostream>
#include<string>
#include<map>
#include<algorithm>
#include<set>

using namespace std;

int main() {
   
   
	map<string, size_t> word_count;
	set<string>exclude{
   
    "you","i" };
	string words;
	
	while (cin>>words)
	{
   
   
		words.erase(find_if(words.begin(), words.end(), ::ispunct), words.end()); //删除单词后面的标点
		for_each(words.begin(), words.end(), [](char& c) {
   
   c = tolower(c); }); //单词转换为小写
		if(exclude.find(words)==exclude.end()) //忽略部分单词
			++word_count[words];
	}
	for (const auto &s : word_count)
		cout << s.first << " occurs  " << s.second << ((s.second > 1) ? " times " : " time ") << endl;
	return 0;
}


11.5

set中只有关键字;
map包括关键字-值对;

11.6

set关联式容器,查找较快;
list顺序容器,查找关键字与容器的大小有关;

11.7

#include<iostream>
#include<string>
#include<map>
#include<vector>

using namespace std;

int main() {
   
   
	map<string, vector<string>>	family;
	string first_name, last_name;
	cin >> last_name;
	while (cin >> first_name)
	{
   
   
		family[last_name].push_back(first_name);
	}
	for (const auto f : family) {
   
   
		cout << f.first << endl;
		for (const auto s : f.second)
			cout << s << " ";
		cout << endl;
	}
	return 0;
}

11.8

效率更高,不用遍历判断重复;

#include<iostream>
#include<string>
#include<vector>

using namespace std;

int main() {
   
   
	vector<string>vs;
	string s;
	while (cin >>s)
	{
   
   
		if (find(vs.begin(), vs.end(), s) == vs.end())
			vs.push_back(s);
	}
	for (const auto s : vs)
		cout << s << " ";
	cout << endl;
	return 0;
}

11.9

map<string,list<size_t>> words_line;

11.10

对于有序容器必须定义元素的比较方法,默认<;
vector<int>::iterator 可以,因为定义了<;
list<int>::iterator不可以,未定义<;

11.11

#include <set>
#include <iostream>
#
数字后端零基础入门系列 | Innovus零基础LAB学习Day9 阅读详情

相关推荐

C++Primer第五版 第十一章习题答案(1~10)

1:知识点1:关联容器与顺序容器有着根本的不同 知识点2:关联容器的元素是按关键词来保存和访问的,顺序容器是按他们在容器中的位置来顺序访问 知识点3:关键词在关联容器中起到重要的作用,map中的元素是(关键字—值)对,关键词是索引左右,值是与索引相关联的数据。set每个元素只包含一个关键字,支持高效的关键词查找 知识点4:标准库提供8个关联容器,主要是map/set,是否重复关键字,顺序保存

MISAYAONE的博客 1万+

C++ primer(第五版)第11习题答案

第十一章 关联容器 11.1 map是关键字-值对的集合,通过关键字来查找值。 vector是对象的集合,每个对象都有一个关联的索引,它提供对该对象的访问。 11.2 list:需要在任何地方插入或删除元素。 vector:保存一些重要的关联数据,总是需要按索引查询元素。 deque:先进先出。 map:字典。 set:错误的检查。(关键字的简单集合) 11.3~1...

INFINITE POSSIBILITIES 857

C++Primer第五版 第十一章习题答案(21~30)

21:知识点1:向map中添加元素,元素的类型必须是pair,但是并没有现成的pair元素,所以需要在insert()的参数列表中创建一个pair familyy.insert({"dsa","das"});//c++11支持 familyy.insert (pair("asd","das"));//显示创建一个pair familyy.insert(make_pair("de","1"));/

MISAYAONE的博客 6500

C++ Primer第5版 习题答案 第十一章

C++ Primer第5版 习题答案 第十一章

zjzytnn的博客 1864

C++Primer第五版中文版 第11习题答案

自学C++留念╰(°▽°)╯

dudi100的博客 1011

c++Primer11关联容器习题解答)

前言 11.1节练习 11.1:描述map和vector的不同 答: map是表示哈希表,vector相当于数组 11.2:分别给出最适合使用list、vector、deque、map、以及set的例子 答: list适用于链表,vector适用于数组类,deque是双端队列,map是哈希表,set是集合 11.3:编写你自己的单词计数程序 11.4:扩展你的程序,忽略大小写和标点, 答:上面两题一起 //map是表示哈希表,vector相当于数组 //list适用于链表,vector适用于数组类,dequ

qq_50271250的博客 694

C++Primer 第十一章 关联容器 习题答案

pos.first->second是因为map中的元素是以pair对象的方式存在的,不是类的对象,所以使用second来获取其中的size_t元素值。无序容器使用了哈希函数和关键字类型的==运算符,在关键字类型的元素没有明显的序关系的情况下,维护元素的序代价非常高昂,此时无序容器很有用。例如,实现双端队列时。

BadWomannnn的博客 319

C++ Primer(第五版)|练习题答案与解析(第十一章:关联容器)

C++ Primer(第五版)|练习题答案与解析(第十一章:关联容器) 本博客主要记录C++ Primer(第五版)中的练习题答案与解析。 参考:C++ Primer C++ Primer习题11.1 描述map和vector的不同。 vector是顺序容器,只能存放单一类型的数据。 map是关联的容器,存放一对key-value,值表示与索引相关联的数据,这两个数据可以是不同类型。(P...

qq_24739717的博客 800

C++Primer第五版 习题答案 第十一章 关联容器(Generic Algorithms)

11.1 map是关联容器,其元素是按关键字来保存和访问的;vector是顺序容器,其元素是按它们在容器中的位置来顺序保存和访问的。 11.2 list:适合插入较多的场景; vector:动态数组的场景; deque:需要头部和尾部增删的场景; map:字典的例子; set:添加忽略关键字的例子。 这里实在是想不出好例子 11.3 #include &amp;lt;map&amp;gt; #include &amp;l...

shamozhizhoutx的博客 4049

c++primer第五版第十一章 关联容器习题答案

纯原创    转载请注明出处:http://blog.csdn.net/axuan_k 11.1    11.2     11.4 #include #include #include using namespace std; int main(){ // 11.1 // vector是一个顺序容器,该容器每个对象通过下标访问 // map是一个关联容器,

旧时光 2140

c++ primer第五版)学习笔记及习题答案代码版(第十一章关联容器

笔记较为零散,都是自己不熟悉的知识点。 习题答案至于一个.cc 中,包含Chapter7.h头文件,读入文件包括./test ./rules .需要演示某一题直接修改 #define NUM****, 如运行11.23题为#define NUM1123; chapter 11 1.  关联容器不支持顺序容器的位置相关的操作,例如push_front或push_back。原因是关联容器

refuil的博客 4407

C++ Primer》学习笔记/习题答案 总目录

目录前言专栏C++学习笔记目录第一 - 快速入门第二 - 变量和基本类型第三 - 标准库类型第四 - 数组和指针第五 - 表达式第六 - 语句第七 - 函数第八 - 标准 IO 库第九 - 顺序容器第十 - 关联容器第十一章 - 泛型算法第十二 - 类第十三 - 复制控制第十四 - 重载操作符与转换第十五 - 面向对象编程第十六 - 模板和泛型编程第十七 - 用...

种树最好的时间是10年前,其次是现在!!! 4万+

C++ Primer第五版习题解答:攻克C++学习路上的10个常见难点

如果你正在学习C++编程语言,那么《C++ Primer第五版无疑是你最佳的学习指南之一。这本经典教材涵盖了从基础语法到高级特性的全面内容,但其中的习题往往让初学者感到困惑。😅 今天,我们将为你提供C++ Primer习题解答的完整指南,帮助你轻松攻克学习路上的各种难点! ## 1️⃣ 为什么C++ Primer习题如此重要? C++ Primer第五版习题解答项目是一个完整的开源解决方案

gitblog_01000的博客 1057

C++理论考试复习题

C++习题答案(一) C++习题答案(二) C++习题答案(三) C++习题答案(四) C++习题答案(五)

weixin_41297324的博客 2515

C++ Primer习题参考答案:第11 - 关联容器

第十一章 关联容器 练习11.1 描述map和vector的不同。 解: map 是关联容器, vector 是顺序容器。 练习11.2 分别给出最适合使用list、vector、deque、map以及set的例子。 解: list:双向链表,适合频繁插入删除元素的场景。 vector:适合频繁访问元素的场景。 deque:双端队列,适合频繁在头尾插入删除元素的场景。 map:字典。 s...

种树最好的时间是10年前,其次是现在!!! 3361

C++Primer第五版 习题答案 【第九

C++Primer第五版 习题答案 【总目录】:https://blog.csdn.net/Dust_Evc/article/details/114334124 练习9.1 对于下面的程序任务,vector、deque和list哪种容器最为适合?解释你的选择的理由。如果没有哪一种容器优于其他容器,也请解释理由。 (a) 读取固定数量的单词,将它们按字典序插入到容器中。我们将在下一中看到,关联容器更适合这个问题。 (b) 读取未知数量的单词,总是将单词插入到末尾。删除操作在头部进行。 © 从

欢迎关注,共同进步! 962

C++ Primer(第五版)|练习题答案与解析(第九:顺序容器)

C++ Primer(第五版)|练习题答案与解析(第九:顺序容器) 本博客主要记录C++ Primer(第五版)中的练习题答案与解析。 参考:C++ Primer C++ Primer习题9.1 对于下面的程序任务,vector, deque和list哪种容器最为合适?解释你选择的理由。如果没有哪一种容器优于其它容器,也请解释理由。 (a)读取固定数量的单词,将它们按字典序插入到容器中。...

qq_24739717的博客 1237

C ++ Primer第五版第十一章练习答案

C ++ Primer第五版第十一章练习答案11.1 节练习练习 11.1练习 11.2练习 11.3练习 11.411.2.1 节练习练习 11.5练习 11.6练习 11.7练习 11.8 11.1 节练习 练习 11.1 描述 map 和 vector 的不同。 map 是关联容器,称为关联数组,其元素是按关键字-值对来保存和访问的,它的关键字是元素的下标; vector 是顺序容器,其元素是按它们在容器中的位置来顺序保存和访问的,它的下标一定是数字。 练习 11.2 分别给出最适合使用 l

不是机器人的博客 1777

Cpp-Primer-5th-Exercises项目揭秘:从基础语法到高级特性的完整路径

你是否正在学习C++编程语言,却被《C++ Primer第五版中的复杂习题困扰?😅 别担心,Cpp-Primer-5th-Exercises项目为你提供了完整的习题解答指南!这个开源项目包含了《C++ Primer第五版所有节的习题解答,从基础语法到高级特性,为你搭建了一条清晰的学习路径。无论你是C++初学者还是希望巩固知识的开发者,这个项目都是你学习路上的得力助手。 ## 📚 项目概

gitblog_00578的博客 836

机器人中的数值优化(十二)——带约束优化问题简介、LP线性规划

本系列文主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会穿插一些路径规划方面的应用实例

慕羽★的博客 3828

PLC單片機程序.rar_PLC_PLC C_PLC程序控制_plc 单片机_plc程序可以直接下载到单片

PLC程序,汇编写的工业控制用的

上一篇: C++Primer第五版 习题答案 第十章 泛型算法
下一篇: C++Primer第五版 习题答案 第十二章 动态内存
Perz_01
博客等级 码龄12年 6粉丝 · 20原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值