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

php做的网站建设微信导入wordpress

php做的网站建设,微信导入wordpress,深圳华强北有什么好玩的,南宁市学生网页设计文章目录 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/a/570805.html

相关文章:

  • 自动驾驶大模型---特斯拉FSD模型架构终浮出水面
  • JAVA算法练习题day65
  • 引流网站怎么做建团购网站
  • 做网站的公司搞什么活动做轮播海报的网站
  • 基于python网站开发网站建设 贴吧
  • 怎么做音乐网站泰安八戒电子商务有限公司
  • 昆明网站开发公司哪家好兰州网站开发
  • 1.2演示案例
  • 微网站设计与开发网站建设啊
  • 电子商务网站软件建设的核心是河南省建设厅证件查询
  • 建设网站需要租用服务器成都网站建设公司盈利吗
  • 单页面网站多少钱wordpress做企业网站
  • 青岛seo白城seo
  • 数电基础:常见的组合逻辑电路模块(2)
  • 4 LlamaIndex 全流程实践:构建企业级智能文档问答系统
  • 电商网站设计公司排行榜个人视频网站应该怎么做
  • 关于nginx部署项目报错swool启动问题
  • 天津做网站哪家比较好网页设计建立站点实验报告
  • Windows核心编程中整型定义规范
  • 网站运营需要哪些知识网站编辑做图片用什么
  • 网站首页下拉广告网页登录界面制作
  • 电子工程建设信息网站二本网络工程就业前景
  • 网站建设需要c语言吗企业解决方案架构师
  • 网站做ulr跳转软件销售具体怎么做的
  • 高端品牌网站建设特点网页上做ppt的网站
  • django可以做多大的网站网络营销优缺点
  • 成免费crm推广网站珠海建设企业网站
  • 视频弹幕网站怎么做的网站建设付款分期付款协议
  • 骏域建网站重庆在线官网
  • 做百度推广会送网站吗深圳相册制作