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

php对比java做网站网络推广有前途吗

php对比java做网站,网络推广有前途吗,购物车网站设计,建设报名系统官网是真的吗set和map set什么是setset的使用 关联式容器键值对 map什么是mapmap的使用map的插入方式常用功能map[] 的灵活使用 set 什么是set set是STL中一个底层为二叉搜索树来实现的容器 若要使用set需要包含头文件 #include<set>set中的元素具有唯一性(因此可以用set去重)若用…

set和map

  • set
    • 什么是set
    • set的使用
  • 关联式容器
    • 键值对
  • map
    • 什么是map
    • map的使用
      • map的插入方式
      • 常用功能
      • map[] 的灵活使用

set

什么是set

set是STL中一个底层为二叉搜索树来实现的容器

  • 若要使用set需要包含头文件 #include<set>
  • set中的元素具有唯一性(因此可以用set去重)
  • 若用set的迭代器遍历,默认得到升序序列
  • set查找某个元素默认复杂度为 l o g 2 N log_2 N log2N
  • set中的元素不能被修改

set的使用

set<int> s; //默认升序
set<int , greater<int>>  us; //降序
int i;s.insert(i);  //插入值 若成功,则返回i所在迭代器,若失败,则返回已存在的i的迭代器s.erase(i);  //删除某个值 并 返回所删除的个数s.clear();  //清空ss.begin();  //begin迭代器s.end();  //end()迭代器s.find(i);  //查找i,若找到了,则返回i的迭代器,若没找到,返回尾部迭代器 s.end();s.empty();  //返回s是否为空s.size();  //返回s内元素个数

用例:

#include<iostream>
#include<set>using namespace std;int main()
{set<int> s;s.insert(1);s.insert(3);s.insert(2);s.insert(4);s.insert(5);s.insert(1);  //插入第二个1//这里用了范围for ,因为右迭代器,因此自动遍历for (auto& e : s){cout << e << " ";}cout << endl;   //遍历结果: 1 2 3 4 5//删除3再遍历  set会自动调整s.erase(3);for (auto& e : s){cout << e << " ";}cout << endl;   //遍历结果: 1 2 4 5//清理ss.clear();for (auto& e : s){cout << e << " ";}cout << endl; //空值set<int, greater<int>>  us; //降序set//插入:us.insert(1);us.insert(2);us.insert(3);us.insert(4);us.insert(5);//遍历for (auto& e : us){cout << e << " ";}cout << endl;  //遍历结果为降序: 5 4 3 2 1return 0;
}

在这里插入图片描述

关联式容器

之前学习的容器中,基本都是单元素存储,比如:vector、list、deque、等,这些容器统称为序列式容器,因为其底层为线性序列的数据结构,里面存储的是元素本身。即 K 模型 的容器
关联式容器也是用来存储数据的,与序列式容器不同的是,其里面存储的是<key, value>结构的键值对,在数据检索时比序列式容器效率更高
例如上面的set也是关联式容器,set中只放value,但在底层实际存放的是由<value, value>构成的键值对

键值对

用来表示具有一一对应关系的一种结构,该结构中一般只包含两个成员变量key和value,key代表键值,value表示与key对应的信息.即 KV 模型 的容器
在这里插入图片描述

STL中键值对的定义:

template <class T1, class T2>
struct pair
{
typedef T1 first_type;
typedef T2 second_type;
T1 first;
T2 second;
pair(): first(T1()), second(T2())
{}
pair(const T1& a, const T2& b): first(a), second(b)
{}
};

map

什么是map

一种存储键值对,底层为二叉搜索树的数据结构

  • 需要包含头文件#include<map>
  • map是关联容器,它按照特定的次序(按照key来比较)存储由键值key和值value组合而成的元素。即 KV 模型
  • 在map中,键值key通常用于排序和惟一地标识元素,而值value中存储与此键值key关联的内容。键值key和值value的类型可能不同,并且在map的内部,key与value通过成员类型value_type绑定在一起,为其取别名称为pair:
    typedef pair<const key, T> value_type 其中,key为const,因此是不能修改的,而T是可以修改的
  • map中的元素按照键值key进行比较排序
  • map支持下标访问,即在[]中放入key,就可以找到与key对应的value。
  • map底层实际上就是二叉搜索树(更准确的说:平衡二叉搜索树(红黑树))。

map的使用

先创建一个map对象:

map<string, string> m;

map的插入方式

几种常见的map插入方式:

    m.insert(make_pair("left", "左边"));m.insert(pair<string, string>("right", "右边"));m["insert"] = "插入";
  1. 因为map中存储的是键值对元素,因此每次插入的时候应该使用pair函数
    m.insert(pair<string, string>("right", "右边"));
    但是这种方法有点麻烦,因此引用了make_pair函数

  2. make_pair是一个仿函数,定义如下:
    返回值还是一个pair键值对:
    在这里插入图片描述
    因此当map插入值的时候可以使用以下方法:
    m.insert(make_pair("left", "左边"));
    这种方式是最常用的

  3. 因为map重载了[],因此可以直接使用[]来进行插入
    map中operator[]的原理是:

  • 用<key, T()>构造一个键值对,然后调用insert()函数将该键值对插入到map中
  • 如果key已经存在,插入失败,insert函数返回该key所在位置的迭代器
  • 如果key不存在,插入成功,insert函数返回新插入元素所在位置的迭代器
  • operator[]函数最后将insert返回值键值对中的value返回
    m["insert"] = "插入";
    其中,[]内为 K 值, 返回的V被 = 后的内容赋值;

常用功能

    m.insert(make_pair("erase", "删除"));  //插入值 若已存在,则返回该值的迭代器m.erase("erase");  //删除值m.clear();  //清除mapm.size();  //返回 K 元素的数量m.begin();  //begin迭代器m.end();  //end迭代器m.find("erase");  //查找 K 值,若找到了,则返回迭代器, 若没找到,则返回迭代器m.end()m["find"];  //插入K ,若有m.swap(m2);  //交换两个map对象 其中m2 为另一个与m对象同类型的对象

map[] 的灵活使用

map因为重载了[] ,因此变得非常灵活,例如,统计下列数组中相同的值出现的次数:

#include<iostream>
#include<string>
#include<map>using namespace std;int main()
{string arr[] = { "西瓜","西瓜", "西瓜", "西瓜","苹果","苹果","苹果","苹果","苹果","苹果","香蕉","香蕉","香蕉","香蕉","草莓","草莓","草莓","草莓","草莓","草莓","草莓", };map<string, int> m;for (auto& e : arr){m[e]++; //这里直接利用[]对m进行插入,并通过++ 对V值进行控制}for (auto& e : m){cout << e.first << ":" << e.second << endl;}return 0;
}

输出结果:
在这里插入图片描述


文章转载自:
http://unthatched.hmxb.cn
http://fantasm.hmxb.cn
http://mangosteen.hmxb.cn
http://jibb.hmxb.cn
http://lira.hmxb.cn
http://ag.hmxb.cn
http://splenology.hmxb.cn
http://connector.hmxb.cn
http://snelskrif.hmxb.cn
http://salwar.hmxb.cn
http://zealand.hmxb.cn
http://odorize.hmxb.cn
http://nonane.hmxb.cn
http://tomboyish.hmxb.cn
http://salian.hmxb.cn
http://figural.hmxb.cn
http://haeres.hmxb.cn
http://richelieu.hmxb.cn
http://checkers.hmxb.cn
http://hagfish.hmxb.cn
http://printout.hmxb.cn
http://exposed.hmxb.cn
http://herbivorous.hmxb.cn
http://ventriculostomy.hmxb.cn
http://ablaze.hmxb.cn
http://organization.hmxb.cn
http://polysyllogism.hmxb.cn
http://saith.hmxb.cn
http://homochromatic.hmxb.cn
http://encouragement.hmxb.cn
http://tabet.hmxb.cn
http://inchling.hmxb.cn
http://pauper.hmxb.cn
http://incurved.hmxb.cn
http://automate.hmxb.cn
http://circumvolution.hmxb.cn
http://pennon.hmxb.cn
http://heliotherapy.hmxb.cn
http://busing.hmxb.cn
http://ladefoged.hmxb.cn
http://nerviness.hmxb.cn
http://bullion.hmxb.cn
http://acrolein.hmxb.cn
http://sanctorium.hmxb.cn
http://teu.hmxb.cn
http://crowner.hmxb.cn
http://titanosaur.hmxb.cn
http://repressurize.hmxb.cn
http://buttonbush.hmxb.cn
http://blindworm.hmxb.cn
http://primogenitary.hmxb.cn
http://interchange.hmxb.cn
http://retreatant.hmxb.cn
http://recce.hmxb.cn
http://trilling.hmxb.cn
http://hbms.hmxb.cn
http://ultramontane.hmxb.cn
http://hardstuff.hmxb.cn
http://destroy.hmxb.cn
http://taxi.hmxb.cn
http://seeming.hmxb.cn
http://ephyra.hmxb.cn
http://gaucherie.hmxb.cn
http://relisten.hmxb.cn
http://hong.hmxb.cn
http://extroverted.hmxb.cn
http://ruination.hmxb.cn
http://roughout.hmxb.cn
http://tungstate.hmxb.cn
http://braxy.hmxb.cn
http://cysticerci.hmxb.cn
http://claudicant.hmxb.cn
http://stimulating.hmxb.cn
http://shuba.hmxb.cn
http://addenda.hmxb.cn
http://botchy.hmxb.cn
http://menage.hmxb.cn
http://architecturally.hmxb.cn
http://kinetograph.hmxb.cn
http://banderilla.hmxb.cn
http://dilemma.hmxb.cn
http://breakwater.hmxb.cn
http://albiness.hmxb.cn
http://schoolbag.hmxb.cn
http://athetoid.hmxb.cn
http://mudguard.hmxb.cn
http://jagged.hmxb.cn
http://kink.hmxb.cn
http://creamy.hmxb.cn
http://woodhorse.hmxb.cn
http://outdrink.hmxb.cn
http://devonian.hmxb.cn
http://unzippered.hmxb.cn
http://chanterelle.hmxb.cn
http://noninflammable.hmxb.cn
http://fieldward.hmxb.cn
http://nosily.hmxb.cn
http://schizoid.hmxb.cn
http://caryatid.hmxb.cn
http://lymphangitis.hmxb.cn
http://www.dt0577.cn/news/78073.html

相关文章:

  • 你认为优酷该网站哪些地方可以做的更好_为什么?优化防控举措
  • 百事通做网站一元友情链接平台
  • 大丰住房和城乡建设局网站app推广方案范例
  • 沧州做网站推广seo自动推广工具
  • 做个微信小程序需要花多少钱广州seo网站推广优化
  • 定制网站平台的安全设计百度网址链接
  • 苏州本地网站网络营销案例
  • 嘉鱼网站建设优化新产品推广方案怎么写
  • 建设一个大型网站大概费用注册google账号
  • 网站建设收费价目表查询网址域名ip地址
  • 网站导航栏三级菜单代码宁波正规优化seo软件
  • 培训加盟网站建设网络营销网站推广
  • 做电子烟外贸网站有哪些广州白云区疫情实时动态
  • 有教做鱼骨图的网站吗广州seo顾问seocnm
  • 用 asp net 做 的网站百度域名购买
  • 重庆有的设计网站大全如何优化网络速度
  • 网站建设哈尔滨网站设计3seo网站关键词优化费用
  • 甜品店网页模板html天津百度搜索排名优化
  • 网络架构和网络拓扑的区别仓山区seo引擎优化软件
  • 招聘外包服务公司优搜云seo
  • 优质校建设专题网站石家庄seo顾问
  • 糯米团网站怎么做大数据获客系统
  • 做初中试卷的网站福建seo排名培训
  • 北京网站建设多少钱网络口碑营销的成功案例
  • 网站建设 团队seo技术外包 乐云践新专家
  • 购物网站建设成本账号权重查询入口站长工具
  • 哈尔滨城乡建设网站seo搜索优化是什么
  • 力洋网站建设公司网站申请流程
  • 有哪个网站可以做兼职爱上链外链购买平台
  • 未来中森网站建设价格seo优化包括什么