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

长沙仿站模板网站建设建设项目环境影响登记表备案系统网站

长沙仿站模板网站建设,建设项目环境影响登记表备案系统网站,家在深圳光明,wordpress vantage一、set/multiset set 与multiset 的区别: set 不能存相同元素, multiset 可以存相同的元素,其余的使 ⽤⽅式完全⼀致。因此,我们有时候可以⽤set 帮助我们给数据去重。 在这⾥只练习使⽤set 。 set 会⽤, multiset 也…

一、set/multiset

set 与multiset 的区别: set 不能存相同元素, multiset 可以存相同的元素,其余的使
⽤⽅式完全⼀致。因此,我们有时候可以⽤set 帮助我们给数据去重。
在这⾥只练习使⽤set 。 set 会⽤, multiset 也会⽤。

创建set

#include <iostream>
#include <set>
using namespace std;
int main()
{set<int> mp1;set<string> mp2;return 0;
}

size/empty
1. size :返回set 中实际元素的个数。时间复杂度:O(1) 。
2. empty :判断set 是否为空。时间复杂度:O(1) 。
begin/end
迭代器,可以使⽤范围for遍历整个红⿊树。
遍历是按照中序遍历的顺序,因此是⼀个有序的序列。
insert
向红⿊树中插⼊⼀个元素
时间复杂度:O(log N) 。
erase
删除⼀个元素
时间复杂度:O(log N) 。
find/count
1. find :查找⼀个元素,返回的是迭代器。时间复杂度:O(log N) 。
2. count :查询元素出现的次数,⼀般⽤来判断元素是否在红⿊树中。时间复杂度:
。O(log N)
如果想查找元素是否在set中,我们⼀般不使⽤find,⽽是⽤count。因为find的返回值是⼀个迭代器,判断起来不⽅便。

lower_bound/upper_bound
1. lower_bound :⼤于等于x的最⼩元素,返回的是迭代器;
时间复杂度:O(log N) 。
2. upper_bound :⼤于x的最⼩元素,返回的是迭代器。

时间复杂度:O(log N) 。

#include <iostream>
#include <set>
using namespace std;
int a[] = {10, 60, 20, 70, 80, 30, 90, 40, 100, 50};
int main()
{set<int> mp;// 插⼊ for(auto x : a){mp.insert(x);}// 遍历 set,最终的结果应该是有序的 for(auto x : mp){cout << x << " ";}cout << endl;// if(mp.count(1)) cout << "1" << endl;// if(mp.count(99)) cout << "99" << endl;// if(mp.count(30)) cout << "30" << endl;// if(mp.count(10)) cout << "10" << endl;// mp.erase(30);// mp.erase(10);// if(mp.count(30)) cout << "30" << endl;// else cout << "no:30" << endl;// if(mp.count(10)) cout << "10" << endl;// else cout << "no:10" << endl;auto x = mp.lower_bound(20);auto y = mp.upper_bound(20);cout << *x << " " << *y << endl;return 0;
}

二、map/multimap

map 与multimap 的区别: map 不能存相同元素, multimap 可以存相同的元素,其余的使
⽤⽅式完全⼀致。因此,这⾥只练习使⽤map 。
map 与set 的区别: set ⾥⾯存的是⼀个单独的关键字,也就是存⼀个int 、 char 、
double 或者string 。⽽map ⾥⾯存的是⼀个pair<key, value> ,(k-v模型)不仅
⼀个关键字,还会有⼀个与关键字绑定的值,⽐较⽅式是按照key 的值来⽐较
可以这样理解:红⿊树⾥⾯⼀个⼀个的结点都是⼀个结构体,⾥⾯有两个元素分别是key 和value 。插⼊、删除和查找的过程中,⽐较的是key 的值。
⽐如,我们可以在map 中:
• 存<int, int> ,来统计数字出现的次数;
• 存<string, int> ,来统计字符串出现的次数;
• 存<string, string> ,表⽰⼀个字符串变成另⼀个字符串;
• 甚⾄存<int, vector<int>> 来表⽰⼀个数后⾯跟了若⼲个数......,⽤来存储树。

创建map

#include <iostream>
#include <vector>
#include <map>
using namespace std;
int main()
{map<int, int> mp1;map<int, string> mp2;map<string, int> mp3;map<int, vector<int>> mp4; // 甚⾄可以挂⼀个 vector

size/empty
1. size :求红⿊树的⼤⼩。时间复杂度:O(1) 。
2. empty :判断红⿊树是否为空。时间复杂度:O(1) 。
 begin/end
迭代器,可以使⽤范围for遍历整个红⿊树。
遍历是按照中序遍历的顺序,因此是⼀个有序的序列。
 insert
向红⿊树中插⼊⼀个元素。这⾥需要插⼊⼀个pair,可以⽤{} 形式。⽐如: mp.insert({1, 
2}) 。
时间复杂度:O(log N) 。
 operator[]
重载[] ,使的map可以像数组⼀样使⽤。
这是map最好⽤的接⼝,有了这个重载,map的使⽤就变得特别轻松,不⽤写很多冗余的代码。
它的底层其实就是调⽤了insert函数,并且会返回val的引⽤。
erase
删除⼀个元素。
时间复杂度:O(log N) 。
 find/count

1. find :查找⼀个元素,返回的是迭代器。时间复杂度:O(log N) 。
2. count :查询元素出现的次数,⼀般⽤来判断当前元素是否在红⿊树中。时间复杂度:
O(log N) 。
5.8 lower_bound/upper_bound
1. lower_bound :⼤于等于x的最⼩元素,返回的是迭代器。时间复杂度:O(log N) 。
2. upper_bound :⼤于x的最⼩元素,返回的是迭代器。时间复杂度:O(log N) 。

#include <iostream>
#include <map>
using namespace std;
void print(map<string, int>& mp)
{for(auto& p : mp){cout << p.first << " " << p.second << endl;}
}
// 统计⼀堆字符串中,每⼀个字符串出现的次数 
void fun()
{string s;map<string, int> mp; // <字符串,字符串出现的次数> for(int i = 1; i <= 10; i++){cin >> s;mp[s]++; // 体现了 operator 的强⼤ }print(mp);
}
int main()
{fun();// map<string, int> mp;// // 插⼊ // mp.insert({"张三", 1}); // mp.insert({"李四", 2}); // mp.insert({"王五", 3}); // // print(mp);// // operator[] 可以让 map 像数组⼀样使⽤ // cout << mp["张三"] << endl; // mp["张三"] = 110; // cout << mp["张三"] << endl; // // 注意事项:operator[] 有可能会向 map 中插⼊本不想插⼊的元素 // // [] ⾥⾯的内容如果不存在 map 中,会先插⼊,然后再拿值 // // 插⼊的时候:第⼀个关键字就是 [] ⾥⾯的内容,第⼆个关键字是⼀个默认值 // if(mp.count("赵六") && mp["赵六"] == 4) cout << "yes" << endl; // else cout << "no" << endl;// // 删除 // mp.erase("张三"); // print(mp);return 0;
}


文章转载自:

http://ZBBntB0P.xkyfq.cn
http://vclEoc4B.xkyfq.cn
http://VDkpePJL.xkyfq.cn
http://FVPvTbD7.xkyfq.cn
http://aFeyu2ff.xkyfq.cn
http://pqAauuh3.xkyfq.cn
http://HnHEctvN.xkyfq.cn
http://ID0IuD5p.xkyfq.cn
http://Cs6ePxV5.xkyfq.cn
http://zzVUwODD.xkyfq.cn
http://mw1MCTeV.xkyfq.cn
http://lxRdox3y.xkyfq.cn
http://3tYeww8f.xkyfq.cn
http://EnQIYZLy.xkyfq.cn
http://57Dug3Hz.xkyfq.cn
http://T8tmN11d.xkyfq.cn
http://4X5DCyRL.xkyfq.cn
http://P8zj7dAD.xkyfq.cn
http://yftyGtff.xkyfq.cn
http://7udR9Ypb.xkyfq.cn
http://0Txvxytg.xkyfq.cn
http://XK9g3SAa.xkyfq.cn
http://o56ObaNI.xkyfq.cn
http://WGEbWWQh.xkyfq.cn
http://aiucRRZ6.xkyfq.cn
http://PT2p8c8S.xkyfq.cn
http://NZP6fk1E.xkyfq.cn
http://cWPDlFZ7.xkyfq.cn
http://F9rEF8Dp.xkyfq.cn
http://U6lIcs4I.xkyfq.cn
http://www.dtcms.com/wzjs/593971.html

相关文章:

  • 茂名网站建设推广最好的推广平台排名
  • 宣城做网站的公司昆山高端网站建设开发
  • 免费手机网站空间赣州带你飞网络科技有限公司
  • 取个网站建设公司名字在对方网站做友情链接
  • 网站建设朋友圈素材站长之家工具
  • 免费网站建设品牌好网络维护协议范本
  • 中国工程建设工程造价管理协会网站文化企业网站模板
  • 安阳工学院图书馆找做网站的书在哪虚拟主机做网站
  • 建站模板wordpress黄骅信誉楼罗茂莲事件
  • 深圳市建设网络有限公司网站应用开发用什么软件
  • 网站图片多大前端开发工程师怎么考
  • 上海最专业的集团网站建设北京营销型网站建设多少钱
  • 58同城推广网站怎么做网站吗
  • 基金网站模板Wordpress建站安装教程图解
  • 优化排名案例西昌seo
  • 学校网站建设意义学软件开发需要学什么
  • 如何做网站的注册页面wordpress管理密码忘记
  • 国内室内设计网站推荐腾讯云服务器租用价格表
  • 网站开发一般会使用框架吗access 网站内容管理系统 哪个好 下载
  • 天津建设网站需要的费用建筑案例网站有哪些
  • 芜湖网站制作公司做网站怎么加水平线
  • 广州seo网站多少钱淘宝 做网站空间 条件
  • 网站内容维护更新方法网站服务器使用
  • 怎么学网站开发谁可以做网站优化排名推广
  • 网站建设公司深圳为什么打开谷歌浏览器是2345网址导航
  • 同城版网站建设广西seo网站
  • 南山区住房和建设局网站官网上海 网站备案
  • 医疗门户网站模板《梦幻西游》官网
  • 新乡专业做网站多少钱seo公司赚钱吗
  • 手机开网店0元加盟店网站优化方法