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

网站开发工程师证手机软件下载平台

网站开发工程师证,手机软件下载平台,建筑工程总承包合同范本,网站开发公司属于什么行业set容器基本概念 set的特性是#xff0c;所有元素都会根据元素的键值自动被排序。set的元素不像map那样可以同时拥有实值和键值#xff0c;set的元素即是键值又是实值。set不允许两个元素又相同的键值。我们不可以通过set的迭代器改变set元素的值#xff0c;因为set元素值就…set容器基本概念 set的特性是所有元素都会根据元素的键值自动被排序。set的元素不像map那样可以同时拥有实值和键值set的元素即是键值又是实值。set不允许两个元素又相同的键值。我们不可以通过set的迭代器改变set元素的值因为set元素值就是其键值关系到set元素的排序规则。如果任意改变set元素值会严重破坏set组织。换句话说set的iterato是一种const_iteratorset拥有和list某些相同的性质当对容器中的元素进行插入操作或者是拿出操作或者删除操作的时候操作之前所有的迭代器在操作完成之后依然有效被删除的那个元素的迭代器是一个例外 multiset容器的基本概念 multiset特性及用法和set完全相同唯一的差别在于它允许键值重复set和multiset的底层实现是红黑树红黑树为平衡二叉树的一种 红黑树一个结点的左边全部小于它它的右边全部大于它 set/multiset 对象的默认构造 setsetInt; //一个存放 int 的 set 容器。setsetFloat; //一个存放 float 的 set 容器。setsetString; //一个存放 string 的 set 容器。multisetmulsetInt; //一个存放 int 的 multiset 容器。multisetmultisetFloat; //一个存放 float 的 multiset 容器。multisetmultisetString; //一个存放 string 的 multiset 容器。 set 的插入与迭代器 set.insert(elem); //在容器中插入元素。 set.begin(); //返回容器中第一个数据的迭代器。 set.end(); //返回容器中最后一个数据之后的迭代器。 set.rbegin(); //返回容器中倒数第一个元素的迭代器。 set.rend(); //返回容器中倒数最后一个元素的后面的迭代器。 //set容器不允许插入重复的键值 void test03() {setints1;pairsetint::iterator,boolrets1.insert(10);if (ret.second true){cout 插入成功 endl;}else{cout 插入失败 endl;}rets1.insert(10);if (ret.second true){cout 第二次插入成功 endl;}else{cout 第二次插入失败 endl;}printSet(s1); }Set 集合的元素排序 setint,less setIntA; //该容器是按升序方式排列元素。 setint,greatersetIntB; //该容器是按降序方式排列元素。 set 相当于 setint,less。 less与 greater中的 int 可以改成其它类型该类型主要要跟 set 容纳的数据 类型一致。 //指定set排序规则从大到小 //仿函数 //函数不能做类型class可以做类型 class myCompare { public://重载()bool operator()(int v1, int v2){return v1 v2;} };//set容器排序 void test04() {//setints1;setint, myCompares1;s1.insert(5);s1.insert(1);s1.insert(9);s1.insert(3);s1.insert(7);//从大到小排序//在插入之前就指定排序规则for (setint, myCompare::iterator it s1.begin(); it ! s1.end(); it){cout *it ;}cout endl;}set 对象的拷贝构造与赋值 set(constsetst); //拷贝构造函数 setoperator(constsetst); //重载等号操作符 set.swap(st); //交换两个集合容器 set 的大小操作 set.size(); //返回容器中元素的数目set.empty();//判断容器是否为空 set 的删除操作 set.clear(); //清除所有元素set.erase(pos); //删除 pos 迭代器所指的元素返回下一个元素的迭代器。set.erase(beg,end); //删除区间[beg,end)的所有元素 返回下一个元素的迭代器。set.erase(elem); //删除容器中值为 elem 的元素。 set 的查找操作 set.find(elem); //查找 elem 元素返回指向 elem 元素的迭代器。 set.count(elem); //返回容器中值为 elem 的元素个数。对 set 来说要么是 0要 么是 1。对 multiset 来说值可能大于 1。 set.lower_bound(elem); //返回第一个elem 元素的迭代器 set.upper_bound(elem); // 返回第一个elem 元素的迭代器。 set.equal_range(elem); //返回容器中与 elem 相等的上下限的两个迭代器。上 限是闭区间下限是开区间如[beg,end)。 void test02(){setints1;s1.insert(5);s1.insert(1);s1.insert(9);s1.insert(3);s1.insert(7);//对于set 没有value key就是valuesetint::iterator poss1.find(2);//判断是否找到if (pos ! s1.end()){cout 找到了值为 *pos endl;}else{cout 未找到 endl;}//count(key)//查找键值key的元素的个数 set而言结果是0或者1int num s1.count(2);cout 2的个数为 num endl;//lower_bound(keyElem);//返回第一个keykeyElem元素的迭代器setint::iterator its1.lower_bound(10);if (it ! s1.end()){cout 找到了,值为 *it endl;}else{cout 未找到 endl;}//upper_bound(keyElem);//返回第一个keykeyElem元素的迭代器setint::iterator it2 s1.upper_bound(3);//第一个大于3的值if (it2 ! s1.end()){cout 找到了,值为 *it2 endl;//5}else{cout 未找到 endl;}//equal_range(keyElem);//返回容器中key与keyElem相等的上下限的两个迭代器//上下限 就是lower_bound和upper_boundpair setint::iterator, setint ::iterator ret s1.equal_range(3);//获取第一个值if (ret.first ! s1.end()){cout 找到equal_range中的lower_bound的值 *(ret.first) endl;}else{cout 未找到 endl;}//获取第二个值if (ret.second ! s1.end()){cout 找到equal_range中的equal_range的值 *(ret.second) endl;}else{cout 未找到 endl;}}注意 1 关联式容器 2 插入数据自动排序 3 insert插入值 4 erase参数可以传值或者迭代器 #includeiostreamusing namespace std;#includesetvoid printSet(setints){for (setint::iterator it s.begin(); it ! s.end(); it){cout *it ;}cout endl;}void test01(){setints1;//关联式容器 key进行排序从小到大自动排序s1.insert(5);s1.insert(1);s1.insert(9);s1.insert(3);s1.insert(7);printSet(s1);if (s1.empty()){cout 空 endl;}else{cout size s1.size() endl;}s1.erase(s1.begin());//3 5 7 9printSet(s1);s1.erase(3);// 5 7 9printSet(s1);}int main(){test01();system(pause);return 0;}pair 的使用 pair 译为对组可以将两个值视为一个单元。 pairT1,T2存放的两个值的类型可以不一样如 T1 为 intT2 为 float。T1,T2 也可 以是自定义类型。 pair.first 是 pair 里面的第一个值是 T1 类型。 pair.second 是 pair 里面的第二个值是 T2 类型。 #includeiostreamusing namespace std; #includestringvoid test01() {//第一种pairstring, intp(string(Tom), 100);//取值cout 姓名 p.first endl;cout 年龄 p.second endl;//第二种创建方式pairstring, intp2 make_pair(Jerry, 200);cout 姓名 p.first endl;cout 年龄 p.second endl; }int main() {test01();system(pause);return 0; }set容器中插入自定义数据类型 //自定义数据类型class Person{public:Person(string name, int age){this-m_Name name;this-m_Age age;}string m_Name;int m_Age;};class myComparePerson{public:bool operator()(const Personp1, const Personp2){if (p1.m_Age p2.m_Age)//降序{return true;}return false;}};void test05(){setPerson,myComparePersons1;Person p1(大娃, 100);Person p2(二娃, 90);Person p3(六娃, 10);Person p4(爷爷, 1000);s1.insert(p1);s1.insert(p2);s1.insert(p3);s1.insert(p4);//插入自定义数据类型一开始必须指定排序规则//显示for (setPerson, myComparePerson::iterator it s1.begin(); it ! s1.end(); it){cout 姓名 (*it).m_Name 年龄 (*it).m_Age endl;}}int main(){//test01();//test02();//test03();//test04();test05();system(pause);return 0;}
http://www.yutouwan.com/news/3513/

相关文章:

  • 网站建设中所需条件有创意的文创产品
  • 做旅游宣传不错的网站网站建设开发报告论文
  • 建设企业网站企业网上银行助手下载网站标签怎么做
  • 微网站制作提供商推荐软件开发报价明细
  • 南宁网站建设找哪家开旗wordpress pdf缩略图
  • 卖房网站母亲节做什麽活动做网站的ui
  • iis中怎样配置网站绑定分析网站示例
  • 广东省建设厅投诉网站thinkphp cms开源系统
  • 中国移动网站建设建设合同网上备案上哪个网站
  • 聚财的公司名字大全肇庆网页关键词优化
  • 怎么自己做单页网站太原建设设计公司网站
  • 网站首页快照不更新装修流程先后顺序
  • 做网络教育录播网站自己想申请一个公司
  • 做网站的基本功百度网盘客户端下载
  • 青海省住房和城乡建设厅网站网站后台用什么浏览器
  • 网站站长 感受注册域名的网站有哪些
  • 网站开发培训太原wordpress企业官网主题下载
  • 建一个视频网站要多少钱枣庄网站建设
  • wordpress固定链接 404延安网站优化
  • 万州建设工程信息网站平台网站模板素材
  • 网站设计怎么好看免费域名申请流程
  • 企业建设网站目的是什么意思枣庄手机网站建设电话
  • 万全网站建设wl17581连接交换
  • 上海网站建设网页制作你却做网站公司那家好
  • 建设行政主管部门官方网站中国建设劳动学会是假网站吗
  • 网站怎样做超链接太原便宜做网站的公司
  • 国际网站如何做seo网站建设实力宣传海报
  • 合肥最好的网站建设公司受欢迎的网站开发
  • 网站建设与管理行业发展情况西安高端网站制作
  • 什么是大型门户网站wordpress 下划线