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

公司的网站建设费用属于什么费如何推广一个项目

公司的网站建设费用属于什么费,如何推广一个项目,网站建设客户常见问题,网站建设备案计划书C20增加了三路比较运算符<>&#xff08;戏称航天飞机运算符&#xff09;&#xff0c;用于对类的比较运算符进行统一的设计。有两种使用方式&#xff1a;默认比较对于某些类&#xff0c;如果按照其成员逐一比较即可决定比较运算符的值&#xff0c;那么可以使用默认的三路运…

C++20增加了三路比较运算符<=>(戏称航天飞机运算符),用于对类的比较运算符进行统一的设计。

有两种使用方式:

  1. 默认比较

对于某些类,如果按照其成员逐一比较即可决定比较运算符的值,那么可以使用默认的三路运算符,编译器为为类生成==,!=,<,>,<=,>=

#include <iostream>
#include <string>
using namespace std;class A{
public:A(int d, string s):m_d(d), m_s(s) {}ostream& pOut(ostream &os) const{os<<"A("<<m_d<<","<<m_s<<")";return os;}auto operator<=>(const A&) const = default;
private:int m_d;string m_s;
};ostream& operator <<(ostream &os, const A &a)
{return a.pOut(os);
}void doCompare(const A& d1, const A& d2)
{if(d1 > d2){cout<<d1<<" is bigger than "<<d2<<endl;}else if(d1 == d2){cout<<d1<<" is equal to "<<d2<<endl;}else if(d1 < d2){cout<<d1<<" is smaller than "<<d2<<endl;}
}int main()
{A a1(1, "hi"), a2(1, "hello"), a3(2, "a");doCompare(a1, a2);doCompare(a1, a1);doCompare(a1, a3);return 0;
}
运行程序输出:
A(1,hi) is bigger than A(1,hello)
A(1,hi) is equal to A(1,hi)
A(1,hi) is smaller than A(2,a)

默认的比较运算符将按照成员的顺序先比较m_d然后再比较m_s

如果将m_d与m_s定义的顺序反过来,那么会影响到比较的结果:

#include <iostream>
#include <string>
using namespace std;class A{
public:A(int d, string s):m_d(d), m_s(s) {}ostream& pOut(ostream &os) const{os<<"A("<<m_s<<","<<m_d<<")";return os;}auto operator<=>(const A&) const = default;
private:string m_s;int m_d; 
};ostream& operator <<(ostream &os, const A &a)
{return a.pOut(os);
}void doCompare(const A& d1, const A& d2)
{if(d1 > d2){cout<<d1<<" is bigger than "<<d2<<endl;}else if(d1 == d2){cout<<d1<<" is equal to "<<d2<<endl;}else if(d1 < d2){cout<<d1<<" is smaller than "<<d2<<endl;}
}int main()
{A a1(1, "hi"), a2(1, "hello"), a3(2, "a");doCompare(a1, a2);doCompare(a1, a1);doCompare(a1, a3);return 0;
}
运行程序输出:
A(hi,1) is bigger than A(hello,1)
A(hi,1) is equal to A(hi,1)
A(hi,1) is bigger than A(a,2)
  1. 定制比较

当默认的比较规则不合适时,可以通过定义<=>为类生成统一的比较运算符。

定制比较时可以分为三个级别,对应的返回值类型分别为:

返回类型

是否有无法比较的值

说明

(强序)std::strong_ordering

所有元素都可比较,且有严格的顺序关系(可比较,等值唯一),比如数值

(弱序)std::weak_ordering

所有元素都可比较,但存在近似相等的情况(可比较,等值不唯一),比如大小写字符

(偏序)std::partial_ordering

元素存在不可比较的情况(非全可比较,等值也不唯一),比如void*指针

以下实现一个不区分大小写的字符串比较:

#include <iostream>
#include <string>
using namespace std;auto strToUpper = [](string str)  
{string s = str;transform(s.begin(), s.end(), s.begin(), [](unsigned char c) { return toupper(c); });return s;
};class A{
public:A(string s):m_s(s) {}ostream& pOut(ostream &os) const{os<<"A("<<m_s<<")";return os;}weak_ordering operator<=>(const A& a) const{string sThis = strToUpper(m_s);string sA = strToUpper(a.m_s);if(sThis > sA){return weak_ordering::greater;}else if(sThis < sA){return weak_ordering::less;}return weak_ordering::equivalent;}string m_s;
};ostream& operator <<(ostream &os, const A &a)
{return a.pOut(os);
}void doCompare(const A& d1, const A& d2)
{if(d1 > d2){cout<<d1<<" is bigger than "<<d2<<endl;}else if(d1 < d2){cout<<d1<<" is smaller than "<<d2<<endl;}else{cout<<d1<<" is equal to "<<d2<<endl;}
}int main()
{A a1("hi"), a2("hello"), a3("Hi"), a4("ho");doCompare(a1, a2);doCompare(a1, a3);doCompare(a1, a4);return 0;
}
运行程序输出:
A(hi) is bigger than A(hello)
A(hi) is equal to A(Hi)
A(hi) is smaller than A(ho)

可以看到通过实现了<=>编译器会由此实现其他运算符。

http://www.mmbaike.com/news/67960.html

相关文章:

  • wordpress百度百科seo站长工具
  • 独立站做deal网站域名邮箱 400电话
  • 自己做的网站怎么置顶app下载推广平台
  • python做的网站如何部署东莞网站优化公司
  • 济南网站建设联系小七百度云盘搜索引擎入口
  • 网站做cdn需要注意什么2345网址导航下载
  • 网站专题页面设计规范站长工具seo查询
  • 泉州模板建站公司seo在线优化工具
  • 哪个网站可以用来做读书笔记海口关键词优化报价
  • 做网站为什么要钱湖南seo推广服务
  • 网站模板库软件今天发生的重大新闻内容
  • 专门做外卖的网站最打动人心的广告语
  • 西宁做网站的好公司seo优化资源
  • 渭南房产网站制作免费网站流量统计
  • vue.js合作做网站么如何免费创建自己的平台
  • 网站图片alt属性设置营销策略有哪些理论
  • 西安市网站建设公司程序员培训
  • 外贸b2c哪个网站好佛山seo培训
  • 手机制作ppt哪种软件好上海网站排名seo公司
  • 网站备案 互联网信息网络营销渠道策略
  • 做网站怎么这么贵seo关键词优化要多少钱
  • 石家庄西晨网站开发百度关键词排名qq
  • 做外贸网站策划建一个企业网站多少钱
  • 网站开发运行详细步骤关键词筛选工具
  • 简单炫酷的网站怎么去做网络推广
  • 赣州网站建设精英跨境电商平台注册开店流程
  • 谁可以教我做网站贵州seo和网络推广
  • 给个网站好人有好报2020免费b2b电子商务平台排名
  • 可以用 我爱乳房做网站名不网站seo优化培训
  • 顺德做网站的公司哪家好软文写作技巧及范文