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

react做的网站有哪些企拓客软件多少钱

react做的网站有哪些,企拓客软件多少钱,外国网站翻墙怎么做,跨境电商商城源码文章目录 C对数据结构使用自定义类1 QMap使用自定义类1.1 使用自定义类做key1.2 使用自定义类做value 2 QSet使用自定义类 参考 C对数据结构使用自定义类 1 QMap使用自定义类 1.1 使用自定义类做key QMap<key,value>中数据存入时会对存入key值的数据进行比较&#xff…

文章目录

  • C++对数据结构使用自定义类
    • 1 QMap使用自定义类
      • 1.1 使用自定义类做key
      • 1.2 使用自定义类做value
    • 2 QSet使用自定义类
  • 参考

C++对数据结构使用自定义类

1 QMap使用自定义类

1.1 使用自定义类做key

QMap<key,value>中数据存入时会对存入key值的数据进行比较,并按照比较后的顺序进行排序存储,因此需要重载运算符函数<

实例如下:

struct Animal{Animal(int size, int area):m_size(size),m_area(area){}~Animal(){}//重载运算符函数bool operator<(const Animal &a) const //注意这里的两个const{if(m_size == a.m_size){return m_area > a.m_area;}else{return m_size > a.m_size;}}int m_size;int m_area;};
QMap<Animal, int> g_AnimalTypeHash;int main(int argc, char *argv[])
{QApplication a(argc, argv);Animal tmpA1 = Animal(20, 1);g_AnimalTypeHash[tmpA1] = 2;return a.exec();
}

1.2 使用自定义类做value

QMap<key,value>中,当自定义类为value,每当赋值时,都会用到默认构造函数、拷贝构造、赋值运算符函数。如果没有重写构造函数,则编译器会帮忙编写上面的函数。

实例如下:

struct Animal{int m_size;int m_area;};QMap<int, Animal> g_AnimalTypeHash2;
int main(int argc, char *argv[])
{QApplication a(argc, argv);Animal tmpB1;tmpB1.m_size = 1;tmpB1.m_area = 2;g_AnimalTypeHash2[2] = tmpB1;return a.exec();
}

如果自己重写了构造函数,则需要重新编写拷贝构造、赋值运算符、析构函数。

实例如下:

struct Animal{Animal(){}Animal(int size, int area):m_size(size),m_area(area){}~Animal(){}Animal(const Animal& a){//拷贝构造this->m_size = a.m_size;this->m_area = a.m_area;qDebug()<<"拷贝构造";}Animal& operator =(const Animal& a) //赋值运算符{if (this != &a){this->m_size = a.m_size;this->m_area = a.m_area;}qDebug()<<"赋值运算符";return *this;}int m_size;int m_area;};QMap<int, Animal> g_AnimalTypeHash2;int main(int argc, char *argv[])
{QApplication a(argc, argv);Animal tmpA1 = Animal(20, 1);g_AnimalTypeHash2[2] = tmpA1;return a.exec();
}

2 QSet使用自定义类

使用自定义类做映射类型,必须重写赋值==运算符函数和编写全局的qHash函数,因为QSet是基于QHash实现的(哈希表)。而且QHash存储的必须是值,不能是指针类型。

以下为官方解释:

在这里插入图片描述

错误的例子:

struct Animal{bool operator<(const Animal &a) const //注意这里的两个const{if(m_size == a.m_size){return m_area > a.m_area;}else{return m_size > a.m_size;}}int m_size;int m_area;};int main(int argc, char *argv[])
{QApplication a(argc, argv);QSet<Animal> animalsSet;Animal animal;for(int i = 0;i < 10;i++){animal.m_size = i;animal.m_area = i*i;animalsSet.insert(animal);}return a.exec();
}    

编译器会爆出如下的错误:

1,error: no matching function for call to 'qHash(const Animal&)' ,;

2,error: no match for 'operator==' (operand types are 'const Animal' and 'const Animal');

正确的示例如下:

struct Animal{bool operator==(const Animal &a) const{if(m_size == a.m_size){return m_area > a.m_area;}else{return m_size  > a.m_size;}}int m_size;int m_area;};uint qHash(const Animal& a)
{return a.m_area + a.m_size;
}int main(int argc, char *argv[])
{QApplication a(argc, argv);QSet<Animal> animalsSet;Animal animal;for(int i = 0;i < 10;i++){animal.m_size = i;animal.m_area = i*i;animalsSet.insert(animal);}return a.exec();
}

参考

QSet Class
用QSet存储一个自定义结构体

http://www.dtcms.com/wzjs/84830.html

相关文章:

  • 用asp做网站课程新公司如何做推广
  • 深圳做夜场做网站seo快速排名上首页
  • 怎么查看网站哪个公司做的google搜索网址
  • 网站推广策划的思路外包客服平台
  • youku网站开发技术seo专家招聘
  • 运城市住房与城乡建设局网站电话营销销售系统
  • 网络销售网站推广福州短视频seo平台
  • 网站弹窗代码网络推广合作资源平台
  • 沈阳建网站公司广告推广怎么找客户
  • 龙城网站建设网站备案查询系统
  • 河北软件开发网站建设seo黑帽有哪些技术
  • 生成链接的网站宁波seo推广定制
  • 广西seo免费seo刷排名
  • wordpress 餐饮主题搜索引擎优化实训报告
  • 模板网站建设价位靠谱seo外包定制
  • 武汉网站建设比较好的公司都有哪些?百度网址浏览大全
  • 做购物网站多少钱 知乎网络推广方案范例
  • 网站建设 北京昌平全网推广
  • 网站做微信小程序平台推广引流怎么做
  • 外国网站架构seo搜外
  • 做网站买流量seo服务外包价格
  • 哪些网站可以做免费广告推广企业网站优化方案
  • 有没有教做化学药品的网站百度指数数据下载
  • 网站程序开发教程百度推广代理查询
  • 北京私人做网站搜索引擎优化的报告
  • 浙江建设职业技术学院提前招网站网络推广比较经典和常用的方法有
  • 广州公司注册名称核名查询系统网页版怎样优化网络
  • 免费高清视频素材网站有哪些快速seo排名优化
  • 做公司 网站建设价格搜索广告
  • 移动网站建设自助建站广东百度推广的代理商