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

建设视频网站的视频源saas微信小程序开发工具

建设视频网站的视频源,saas微信小程序开发工具,推广是什么意思,素材网站哪个值得买文章目录 一、set系列1.set①insert②find③erase④lower_bound与upper_bound 2.multiset①count②equal_range 二、map系列1.map①insert1.插入pair的四种方式2.常用两种方式 ②[]2.multimap①count②equal_range 一、set系列 1.set ①insert 函数分析(C98&…

文章目录

  • 一、set系列
    • 1.set
      • ①insert
      • ②find
      • ③erase
      • ④lower_bound与upper_bound
    • 2.multiset
      • ①count
      • ②equal_range
  • 二、map系列
    • 1.map
      • ①insert
        • 1.插入pair的四种方式
        • 2.常用两种方式
      • ②[]
      • 2.multimap
        • ①count
        • ②equal_range

一、set系列

1.set

①insert

  • 函数分析(C++98):
    在这里插入图片描述
  • 简单使用:
	set<int> s;s.insert(5);s.insert(6);s.insert(7);s.insert(9);s.insert(8);s.insert(1);s.insert(2);s.insert(3);s.insert(4);s.insert(4);s.insert(4);s.insert(4);for (auto e : s){cout << e << " ";}
  • 运行结果:

在这里插入图片描述

可见:set具有天然的去重和排序功能—— 二叉搜索树的结构

②find

  • 函数分析:

在这里插入图片描述

  • 简单应用:
	set<int> s;s.insert(5);s.insert(6);s.insert(7);s.insert(9);s.insert(8);s.insert(1);s.insert(2);s.insert(3);s.insert(4);set<int>::iterator it = s.find(8);if (it != s.end()){cout << "找到了" << endl;}else{cout << "没找到" << endl;}

③erase

  • 函数分析:
    在这里插入图片描述

  • 简单应用:

	set<string> s;s.insert("张三");s.insert("李四");s.insert("王五");size_t n = s.erase("王五");cout << n << endl;set<string>::iterator it = s.find("李四");if (it != s.end()){it = s.erase(it);if(it != s.end())cout << *it << endl;}
  • 运行结果:

在这里插入图片描述

④lower_bound与upper_bound

  • 函数分析

在这里插入图片描述

  • 简单使用
std::set<int> myset;
std::set<int>::iterator itlow, itup;for (int i = 1; i < 10; i++)// 10 20 30 40 50 60 70 80 90 myset.insert(i * 10);		for (auto e : myset)
{cout << e << " ";
}
cout << endl;itlow = myset.lower_bound(30);
itup = myset.upper_bound(60);
//为了删除[30,60]且符合迭代器区间的左闭右开的规则,因此最终调整为:[30,70)auto it = myset.erase(itlow, itup);if(it != myset.end())cout << *it << endl;for (auto e : myset)
{cout << e << " ";
}
  • 运行结果
    在这里插入图片描述

2.multiset

  • 基本与set一致,这里介绍几个适合它使用的。
  • 强调一点,mutiset可以存相同数据!

①count

  • 函数分析
    在这里插入图片描述

  • 简单使用

	multiset<int> s;s.insert(1);s.insert(1);s.insert(2);s.insert(3);s.insert(4);for (auto e : s){cout << e << " ";}cout << endl;cout << s.count(1) << endl;
  • 运行结果
    在这里插入图片描述

②equal_range

函数分析:
在这里插入图片描述

  • 简单运用:
	multiset<int> s;s.insert(1);s.insert(1);s.insert(1);s.insert(1);s.insert(2);s.insert(3);s.insert(4);//pair<multiset<int>::iterator, multiset<int>::iterator> it = s.equal_range(1);auto it = s.equal_range(1);//区间为:[1,2)auto begin = it.first;auto end = it.second;while (begin != end){cout << *begin << " ";begin++;}cout << endl;
  • 运行结果
    在这里插入图片描述

强调:

  1. 在插入相同值时,并不能保证稳定性,即相同数据的前后顺序会不会发生改变——涉及AVL树。
  2. set系列的迭代器,在底层都是const迭代器,表明其值是不能被修改的,在底层上来讲,如果修改了,就破坏了二叉搜索树的结构。

二、map系列

1.map

①insert

1.插入pair的四种方式

	map<string, string> dict;//第一种方式:命名对象插入pair<string, string> p("insert", "插入");dict.insert(p);//第二种方式:直接用匿名对象进行插入dict.insert(pair<string, string>("sort", "排序"));//第三种方式:make_pair交由函数(底层会被优化成内联)—— C++98。//推荐使用这种,因为大多数都支持。//C++98只支持单参数的构造函数dict.insert(make_pair("object", "对象"));//第四种方式:{} ——C++11采用了这种方式从而支持了多参数的构造函数。dict.insert({ "English","英语" });
  • 补充:make_pair函数——C++98
    在这里插入图片描述

2.常用两种方式

	//字典序map<string, string> dict;dict.insert(make_pair("object", "对象"));dict.insert(make_pair("insert", "插入"));dict.insert(make_pair("sort", "排序"));dict.insert(make_pair("English", "英语"));for (const auto& e : dict){cout << e.first << ":" << e.second << endl;}//查找次数string strs[] = { "苹果", "西瓜", "苹果", "樱桃", "苹果", "樱桃"\, "苹果", "樱桃", "苹果" };map<string, int> countMap;for (const auto& e : strs){auto it = countMap.find(e);if (it != countMap.end()){(it->second)++;}else{countMap.insert(make_pair(e, 1));}}for (const auto& e : countMap){cout << e.first << ":" << e.second << endl;}

②[]

  • 函数原理分析:

在这里插入图片描述

  • 简单使用
	string strs[] = { "苹果", "西瓜", "苹果", "樱桃", "苹果", "樱桃", \"苹果", "樱桃", "苹果" };map<string, int> countMap;for (const auto& e : strs){countMap[e]++;}for (const auto& e : countMap){cout << e.first << ":" << e.second << endl;}
  • 时间复杂度:因为底层是二叉搜索树的结构,因此为logN(底层是优化了的,包括最坏情况也优化成了大概logN)。

  • 补充:map对已有元素,是不会再进行插入和覆盖的,至少在VS下是这样。

2.multimap

  • 说明:因为支持了重复元素的插入,因此不存在[]运算符重载。

①count

  • 基本用法同multiset

  • 简单应用:

	multimap<string, string> dict;dict.insert(make_pair("tell", "告诉"));dict.insert(make_pair("tell", "分辨"));dict.insert(make_pair("hot", "热的"));dict.insert(make_pair("hot", "性感的"));for (const auto& e : dict){cout << e.first << ":" << e.second << endl;}size_t n = dict.count("tell");//这里模拟的是一词多义,即tell有几种意思。cout <<"tell有:" << n <<"种意思" << endl;

②equal_range

  • 用法同multiset

  • 简单运用:

	multimap<string, string> dict;dict.insert(make_pair("tell", "告诉"));dict.insert(make_pair("tell", "分辨"));dict.insert(make_pair("hot", "热的"));dict.insert(make_pair("hot", "性感的"));//pair<multimap<string, string>::const_iterator, \multimap<string, string>::iterator> \it = dict.equal_range("tell");//tell的几个意思分别是auto it = dict.equal_range("tell");auto begin = it.first;auto end = it.second;while (begin != end){cout << begin->first << ":" << begin->second << endl;begin++;}
http://www.yayakq.cn/news/710588/

相关文章:

  • 凡科网站做门户网怎么样wordpress 社区 插件
  • 朋友用我的vps做网站宁波拳头信息科技有限公司
  • 开发商城网站公司手机网站 好处
  • 备份核验单时网站域名做网站工作内容
  • 免费做图片的网站有哪些wordpress 主页显示多图
  • 广东品牌网站制作公司天津网站建设学习
  • 贵州企业网站建设公司回合网页游戏排行榜前十名
  • 找客户资源的网站福州住房和建设局网站
  • 做视频赚钱的网站北京网站开发网络公司
  • 福建住房和建设网站密码忘记购彩网站建设
  • 做第三方库个人网站网站开发经营范围
  • 网站功能建设规划书网站程序授权怎么做
  • 网站的倒计时怎么做小型企业网站建设的背景
  • 嘉兴营销型网站手机版网站开发
  • 响应式网站模块优化关键词排名工具
  • 怀化网站优化乐从网站建设公司
  • 上海平台网站建设公司排名网站seo优化推广教程
  • 甘肃高端建设网站合肥网站建设pqiw
  • 网站开发用python吗广州网站优化渠道
  • 云南省建设注册考试中心网站企业网站建设可行性分析 技能训练
  • 网站排名优化软件联系方式网络空间搜索引擎
  • 做网站需要什么代码网站建设价格是哪些方面决定的
  • 台州网站建设蓝渊wordpress 分销
  • 富阳网站建设推广建微信网站
  • 网站开发建议石家庄开发网站建设
  • 优礼品网站模板手机网站织梦模板
  • 怎么才能让百度收录网站公司网站开源
  • 哪家公司做网站不错2017网站开发主流工具
  • 商丘网站制作方案电商网站特点
  • 做商业网站宝坻建设路小学网站