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

企业网站建设的主要目的是网站物理结构优化包含网页优化吗

企业网站建设的主要目的是,网站物理结构优化包含网页优化吗,电子产品论坛都有哪些,wordpress投稿者权限目录 1. 基本概念 2. 构造和赋值 3. 大小和交换 4. 插入 和 删除 5. 统计 和 查找 6. set容器的排序 1. 基本概念 set和multiset属于关联式容器,底层结构式二叉树,所有元素都会在插入时自动排序。 如果你对容器的概念,或是二叉树不太了…

目录

1. 基本概念

2. 构造和赋值

3. 大小和交换

4. 插入 和 删除

5. 统计 和 查找

6. set容器的排序


1. 基本概念

        set和multiset属于关联式容器,底层结构式二叉树,所有元素都会在插入时自动排序。

如果你对容器的概念,或是二叉树不太了解,可以快速浏览一下下面这两篇文章:

C++中STL的概念——零基础/小白向,适合竞赛,初学C++者使用-CSDN博客

数据结构入门————树(C语言/零基础/小白/新手+模拟实现+例题讲解)-CSDN博客

        set和muliset 的区别是什么呢?

        set不允许插入重复的数据元素

        multiset允许插入重复的数据元素

        我们先写一段代码,展示set容器插入和打印,下面这段代码,你不需要先出来,只需要看懂大概即可,部分不了解,下面都会有讲解。

set<int> s;
//插入3个元素,
s.insert(10);
s.insert(30);
s.insert(20);for(set<int>::iterator it = s.begin();it!=s.end();it++)
{cout<<*it<<endl;
}
//打印: 10 20 30

        ser容器的迭代器的写法就是:set<T>::iterator 

        上面这段代码,我们先插入了10,30,20,最后打印却是10 20 30,这是因为set容器默认将插入的数据从小到大排序,当然这是针对内置数据类型。如果想要从大到小,或者排序自定义数据类型,下面会有所讲解。

        下面介绍set容器的接口,都是先展示函数原型,在展示代码应用。

2. 构造和赋值

set<T> s;                     //默认构造

set(const set& s);        //拷贝构造

set& operator=(const set& s);        //重载了等号操作符

set<int> s1;set<int> s2(s1);set<int> s3;
s3 = s1;

3. 大小和交换

size();        //返回容器中元素的数目

empty();        //判断容器是否为空

swap(st);      //交换两个集合容器

set<int> s;
s.insert(10);
s.insert(20);
cout<<s.size()<<endl;set<int> s1;
s1.insert(20);
s1.insert(30);
cout<<s1.size()<<endl;s1.swap(s);//s1 = 10 , 20
//s  = 20 , 30 

4. 插入 和 删除

insert(value);        //插入元素value

erase(pos);          //删除pos位置的值

erase(beg,end);        //删除区间[beg,end)内的数据

erase(value);        //删除元素value

clear();                 //清楚容器所有元素        

set<int> s;
s.insert(10);
s.insert(20);
s.insert(30);s.erase(s.begin());s.erase(20);s.erase(s.begin(),s.end());    //等价于s.clear();

5. 统计 和 查找

find(key);        //查找key是否存在,存在返回该元素的迭代器,不存在返回end();

cunt(key);       //统计key的元素个数

set<int> s;
s.insert(10);set<int>::iterator pos = s.find(20);
if(pos == s.end())
{cout<<"找不到元素";
}
else
{cout<<"找到了该元素";
}cout<<s.count(10)<<endl;

        对于set来说,key的元素个数要么为0,要么为1,不可能大于1,而multiset元素个数可以大于等于1。

6. set容器的排序

        对于set容器,默认是从小到大排序,如果我们想要从大到小排序呢?这里就要用到仿函数。

class MyCompare()
{
public:bool operator(int v1 ,int v2) const{return v1 > v2;}
}set<int, MyCompare> s;
s.insert(10);
s.insert(20);
s.insert(30);for(set<int, MyCompare>::iterator it = s.begin();it!=s.end();it++)
{cout<<*it<<endl;
}

        最后打印的结果就是:30 20 10。这只是对于内置数据类型的排序,还有自定义数据类型的排序。

        对于自定义的数据类型,要使用自定义排序,否则,可能编译不过。

struct person
{person(string n, int a){this->name = n;this->age = a;}string name;int age;
};struct compare_name
{bool operator()(person p1, person p2) const{return p1.age > p2.age;}
};person p1("lxp", 19);	
person p2 = { "ajm",20 };set<person, compare_name> s;s.insert(p1);
s.insert(p2);for (set<person, compare_name>::iterator it = s.begin();it != s.end();it++)
{cout << "name = " << it->name << " " << "age = " << it->age << endl;
}

        以上,我们就简单的对set容器有了了解,当然,这也只是STL中set容器简单的一部分,日后,我会在专栏中更新更多更复杂的内容,欢迎大家一起学习。

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

相关文章:

  • 常德住房和城乡建设局网站代理公司在线观看
  • 新吴区推荐做网站电话南宁logo设计公司
  • 网站建设三亚建一个个人网站
  • 网站管理员容易做吗seo网站关键词优化怎么做
  • 网站开发制作公司简介怎么查一个地区的所有网站域名
  • 如何做php分页网站在sae上搭建wordpress
  • 网站描述 关键词动态asp.net网站开发教程
  • 修改公司网站中国十大门户类网站
  • 百度收录哪些网站网站搭建软件有哪些
  • 大气简约企业网站模板广告设计需要学什么课程
  • 免费建站哪个网站最好vi设计说明范文解析
  • 做网站公司赚钱吗普陀大型网站建设
  • 怎么做网站视频seo服务公司
  • 国内有做外汇的正规网站吗石家庄智能模板建站
  • wordpress网站 添加微信个人公司网站建设
  • 照片分享网站开发费用免费网站怎么做排名
  • 以橙色为主的网站兰溪网站建设公司
  • 移动门户网站建设特点wordpress付费资源
  • django做网站好吗设计师工作室
  • 网站做直播吗网站备案需要关闭
  • 假发网站建设微信公众平台高级开发
  • 公司网站建设属于软件销售wordpress上传七牛
  • 做网站没有公网wordpress调用post
  • 巴西网站后缀wordpress双数据库
  • 做服装有哪些好的网站有哪些详述电子商务网站的建设
  • 长春专业网站建设哪家口碑好高端建设网站建设
  • 做网站有哪些公司做网站编辑的发展方向晋升
  • 一个虚拟主机能安装2个网站吗营销推广是干什么的
  • 公众号h5网站开发网络运维工程师的月薪有多少
  • 山东嘉邦家居用品公司网站 加盟做经销商多少钱 有人做过吗邯郸有没有专门做写字楼的网站