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

米拓建站模板本地wordpress模板编辑器

米拓建站模板,本地wordpress模板编辑器,免费作图网站,信息推广的方式有哪些std::set 是C标准库中的容器之一#xff0c;它基于红黑树实现。std::set 利用红黑树的特性来实现有序的插入、查找和删除操作#xff0c;并且具有较好的平均和最坏情况下的时间复杂度。 当向 std::set 插入元素时#xff0c;它会按照特定的比较函数#xff08;bool less标准库中的容器之一它基于红黑树实现。std::set 利用红黑树的特性来实现有序的插入、查找和删除操作并且具有较好的平均和最坏情况下的时间复杂度。 当向 std::set 插入元素时它会按照特定的比较函数bool lessT::operator() const(const T lhs, const T rhs)将新元素插入到红黑树的适当位置以保持树的有序性质。插入操作的平均时间复杂度为 O ( log ⁡ n ) O(\log n) O(logn)其中 n n n是 std::set 中元素的数量。查找操作find()使用红黑树的性质通过比较函数在树中进行二分查找查找操作的平均时间复杂度为 O ( log ⁡ n ) O(\log n) O(logn)。 但是当我们把 struct 放入 std::set 会有什么后果呢因为 std::set 需要在插入到时候排序所以需要重载 struct 的比较运算符这个时候就出现问题了首先我们定义一个结构体 Person struct Person {Person(int _ID, string _name, int _age) : ID(_ID), age(_age), name(_name) {}int ID;int age;string name; };当我们直接插入到 std::setPerson 中时会报 complier error 的错误因此简单补写一个比较运算符重载如下 bool operator(const Person lhs, const Person rhs) {return lhs.age rhs.age; }OK编译起来没有问题但是我们运行测试一下下面的find操作就会发现问题 #include iostream #include setusing namespace std;struct Person {Person(int _ID, string _name, int _age) : ID(_ID), age(_age), name(_name) {}int ID;int age;string name; };bool operator(const Person lhs, const Person rhs) {return lhs.age rhs.age; }int main() {setPerson person;for (int i 0; i 1000; i) {Person p_tmp(i, sxj, 10);person.insert(p_tmp);}Person p(2000, sxj, 10);auto it person.find(p);if (it ! person.end())cout Find Person --- ID: it-ID name: it-name age: it-age;elsecout Cant find endl;return 0; }明明不在set中的 ID-2000 的Person也可以被找到。造成这个结果的原因是我们所提供的 operator() 当Person p1、p2在 p1p2 与 p2p2 都不成立时find 就会判断 p1 和 p2 是同一个 Person 因此会造成这样的错误结果。 解决方案就是补充完整我们的比较运算符重载完整代码如下 #include iostream #include setusing namespace std;struct Person {Person(int _ID, string _name, int _age) : ID(_ID), age(_age), name(_name) {}int ID;int age;string name; };bool operator(const Person lhs, const Person rhs) {if (lhs.ID rhs.ID) return true;if (lhs.ID rhs.ID) return false;if (lhs.name rhs.name) return true;if (lhs.name rhs.name) return false;return lhs.age rhs.age; }int main() {setPerson person;for (int i 0; i 1000; i) {Person p_tmp(i, sxj, 10);person.insert(p_tmp);}Person p(2000, sxj, 10);auto it person.find(p);if (it ! person.end())cout Find Person --- ID: it-ID name: it-name age: it-age;elsecout Cant find endl;return 0; }
http://www.dnsts.com.cn/news/16606.html

相关文章:

  • 建模网站wordpress 改地址
  • 购买模板做网站淘宝导购网站模板
  • 昆明网站seo优化在线设计房屋布局软件
  • 网站上的图是怎么做的公司画册模板
  • 宜昌网站制作公司排名wordpress编辑远程图片
  • 哪些网站适合新手编程做项目做与不做赞美网站
  • 有效的网站优化wordpress博文图片
  • 网站大全网站免费软文世界平台
  • 网站的关键词和描述教做宝宝衣服的网站
  • 和京东一样做电子产品的网站如何做公司的英文网站
  • 建站品牌大全房产信息网显示已备案是什么意思
  • 学seo网站推广好吗长春网站建设长春电梯公司
  • 建设网站资质查询301wordpress
  • 网站及数据库怎么做后门免费的crm软件
  • 重庆网站推广报价成为架构师有多难
  • 一个服务器能放多少网站外汇直播室都是网站做的
  • 浙江省城乡与住房建设厅网站网站建设工作 方案
  • 开网站需要钱吗网站后台要怎么做
  • 网盘资源共享网站陕西建设厅八大员报名官网
  • 网站二次开发哈尔滨市建设厅网站
  • 学校部门网站的建设西安建设工程诚信平台
  • 服务器网站绑定域名网站建设学美工大概要多少学费
  • python如何开发小软件优化seo招聘
  • 网站备案 公司注销吗免费网站主机
  • 茂南网站建设公司阿里云网站建设部署与发布
  • 嘉兴城乡建设网站广东省网上注册公司流程
  • xin网站ftp上传做门户网站长沙社区赚钱吗
  • 阿里云网站备案流程网站建设在电子商务中的作用
  • python搭建个人网站青岛 建网站
  • 单产品 网站wordpress 自定义页面 模版