当前位置: 首页 > news >正文

新会住房和城乡建设部网站自助提交网站

新会住房和城乡建设部网站,自助提交网站,莱芜户型优化培训,韩国优秀网站文章目录练习11.1练习11.2练习11.3练习11.4练习11.5练习11.6练习11.7练习11.8练习11.9练习11.10练习11.1 描述map 和 vector 的不同。 map 是关联容器, vector 是顺序容器。 练习11.2 分别给出最适合使用 list、vector、deque、map以及set的例子。 list&#xff1a…

文章目录

      • 练习11.1
      • 练习11.2
      • 练习11.3
      • 练习11.4
      • 练习11.5
      • 练习11.6
      • 练习11.7
      • 练习11.8
      • 练习11.9
      • 练习11.10

练习11.1

描述map 和 vector 的不同。

map 是关联容器, vector 是顺序容器。

练习11.2

分别给出最适合使用 list、vector、deque、map以及set的例子。

  • list:双向链表,适合频繁插入删除元素的场景。
  • vector:适合频繁访问元素的场景。
  • deque:双端队列,适合频繁在头尾插入删除元素的场景。
  • map:字典。
  • set:适合有序不重复的元素的场景。

练习11.3

编写你自己的单词计数程序。

#include <iostream>
#include <map>
#include <string>
#include <algorithm>
#include <cctype>int main()
{std::map<std::string, std::size_t> word_count;std::string word;while (std::cin >> word)++word_count[word];for (const auto& elem : word_count)std::cout << elem.first << " : " << elem.second << "\n";return 0;
}

练习11.4

扩展你的程序,忽略大小写和标点。例如,“example.”、"example,"和"Example"应该递增相同的计数器。

#include <iostream>
#include <map>
#include <string>
#include <algorithm>
#include <cctype>void word_count_pro(std::map<std::string, int>& m)
{std::string word;while (std::cin >> word){for (auto& ch : word) ch = tolower(ch);word.erase(std::remove_if(word.begin(), word.end(), ispunct),word.end());++m[word];}for (const auto& e : m) std::cout << e.first << " : " << e.second << "\n";
}int main()
{std::map<std::string, int> m;word_count_pro(m);return 0;
}

练习11.5

解释map和set的区别。你如何选择使用哪个?

map 是键值对,而 set 只有键没有值。当我需要存储键值对的时候使用 map,而只需要键的时候使用 set。

练习11.6

解释set和list 的区别。你如何选择使用哪个?

set 是有序不重复集合,底层实现是红黑树,而 list 是无序可重复集合,底层实现是链表。

练习11.7

定义一个map,关键字是家庭的姓,值是一个vector,保存家中孩子(们)的名。编写代码,实现添加新的家庭以及向已有家庭中添加新的孩子。

map<string, vector<string>> m;
for (string ln; cout << "Last name:\n", cin >> ln && ln != "@q";)for (string cn; cout << "|-Children's names:\n", cin >> cn && cn != "@q";)m[ln].push_back(cn);

练习11.8

编写一个程序,在一个vector而不是一个set中保存不重复的单词。使用set的优点是什么?

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>int main()
{std::vector<std::string> exclude = { "aa", "bb", "cc", "dd", "ee", "ff" };for (std::string word; std::cout << "Enter plz:\n", std::cin >> word;){auto is_excluded = std::binary_search(exclude.cbegin(), exclude.cend(), word);auto reply = is_excluded ? "excluded" : "not excluded";std::cout << reply << std::endl;}return 0;
}

set 的优点是集合本身的元素就是不重复。

练习11.9

定义一个map,将单词与一个行号的list关联,list中保存的是单词所出现的行号。

std::map<std::string, std::list<std::size_t>> m;

练习11.10

可以定义一个vector::iterator 到 int 的map吗?list::iterator 到 int 的map呢?对于两种情况,如果不能,解释为什么。

可以定义 vector<int>::iteratorint 的map,但是不能定义 list<int>::iteratorint 的map。因为map的键必须实现 < 操作,list 的迭代器不支持比较运算。

http://www.yayakq.cn/news/194297/

相关文章:

  • 做效果图赚钱的网站网站开发用户需求分析
  • 大鹏新区住房和建设局网站贵州省住房城乡建设厅网站
  • 企业网站备案要关站吗国外的工业设计网站
  • 做外贸的怎样才能上国外网站秦皇岛属于河北哪个市
  • 黑牛网站建设如何用qq使用wordpress
  • 一些设计网站为什么不建议去代账公司
  • 南京网站建设排名教育网站如何做seo
  • 做物流网站模块百度关键词排名优化
  • wordpress建社群便宜的seo网站优化排名
  • 网站建设的代理学信网网站建设怎么搞
  • 怎么做网站优化国外 电商网站
  • 如何在国外网站上做外贸网店运营实训总结
  • 网站空间 支持什么程序网站推广和优化的原因网络营销
  • 做电商网站要备案吗百度网址链接
  • 安防监控网站模板电脑有网但浏览器打不开网页
  • 网站嵌入地图用ps做网站设计
  • dedecms网站管理系统望野古诗拼音
  • 工信部网站备案查询 验证码错误容桂网站建设联系方式
  • 网站建设中英文建盏产业品牌
  • 网站地图 seo莱州市网站
  • 国家拨款农村建设查询的网站方案查一查网站
  • 英文字体展示网站推荐flash企业网站源码
  • 建设用地规划许可证去哪个网站查相亲网站建设
  • 专用网站建设家居装修企业网站源码
  • 技术大全网广州建网站开发seo型企业网站
  • 烟台制作网站的公司网站建设需要准备什么
  • 网页制作与网站建设试卷及答案wordpress首页html代码
  • 购物商城外贸网站工装
  • 同创企业网站源码快手做电商需要投资多少钱
  • 万网网站如何建设织梦网站怎么做下载地址