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

DAY13

面试遇到的新知识点

        char str[10],只有10个字符的空间,但是只能存储9个字符,最后一个字符用来存储终止符'\0'

        strlen只会计算'\n',不会计算'\0'

值传递:

void test2(char * str)
{str = "hello\n";
}int main()
{char * str;test2(str);cout << str;return 0;
}

引用传递

void test3(char ** str)
{*str = "hello\n";
}int main()
{char * str;test3(&str);cout << str;return 0;
}

只有传变量的地址对变量进行解引用才能够修改变量的值。

空类里面有什么?

默认成员函数

1.默认构造

2.拷贝构造

3.赋值运算符

4.移动构造

5.移动赋值

6.析构函数

关于最近的一些面试感受

明显感觉好多岗位都交叉着QT,别人问我QT我都答不上来,只能说一个信号槽和用QT封装了简单的网页。

感觉拿不出手,得好好钻研QT了,至少能吹的出来。

c++的排序算法,快排,堆排,后面还要继续更新一个归并排序,将这三个排序算法掌握基本是够用了;

池性组件,后面还要更新内存池,连接池之类的。

然后把基本的排序和池性组件理清楚,边开始学QT边写算法题。目前来看回溯算法算是入门了,但是动态规划,贪心算法和单调栈还是不清楚,争取把这些搞掉。今天开始学习QT,历时一个礼拜应该能小有成就吧。

QT

QT Creator的界面介绍

项目的结构

简单的QT程序

MainWindow::MainWindow(QWidget *parent): QMainWindow(parent),lab(new QLabel("hello",this)), ui(new Ui::MainWindow)
{ui->setupUi(this);// 设置标签的位置lab->setGeometry(100,100,200,200);// 设置标签的颜色lab->setStyleSheet("QLabel{background-color:green;color:red}");// 设置字体的大小lab->setFont(QFont("楷书",22));
}

信号槽机制

信号(signal)

信号的本质是事件,信号展现方式就是函数。当一个事件发生之后,则发出一个信号(signal)。

槽(slot)

对信号响应的函数

槽与普通函数的区别:

槽函数可以与一个信号关联,当信号被发射的时候,关联的槽函数被自动执行处理

信号与槽关联是使用QObject::connect()函数进行实现

connect

sender:发出信号的对象

signal:sender对象的信号

receiver:信号接收者

method:receiver对象的槽函数,当检测到sender信号,receiver对象调用method方法

信号与槽的连接方式

一个信号可以与另一个信号相连

// 信号一可以触发信号二的发送
connect(object1,SIGNAL(signal1),object2,SIGNAL(signal1));

同一个信号可以和多个槽相连

connect(object1,SIGNAL(signal1),object2,SIGNAL(slot1));
connect(object1,SIGNAL(sIgnal1),object3,SIGNAL(slot2));

同一个槽可以响应多个信号

connect(object1,SIGNAL(signal1),object2,SIGNAL(slot1));
connect(object3,SIGNAL(signal3),object2,SIGNAL(slot1));

常用连接方案

connect(object1,SIGNAL(signal),object2,SLOT(slot));

实战

计算圆球体积

头文件

头文件(dialog.h)
#ifndef DIALOG_H
#define DIALOG_H
​
#include <QDialog>
// 引入标签,命令按钮
#include<qlabel.h>
#include<qpushbutton.h>
#include<qlineedit.h>
​
class Dialog : public QDialog
{Q_OBJECT
​
public:Dialog(QWidget *parent = nullptr);~Dialog();
private:QLabel *lab1, *lab2;QLineEdit *lEdit;QPushButton *pbt;
​
// 设置槽函数
public slots:void CalculateCircleV();
};
#endif // DIALOG_H

main.cpp
#include "dialog.h"
#include <QApplication>
​
int main(int argc, char *argv[])
{QApplication a(argc, argv);Dialog w;// 设置标题w.setWindowTitle("计算圆球体积");w.show();return a.exec();
}

dialog.cpp
#include "dialog.h"
#include<QGridLayout>
const static double PI=3.1415;
​
Dialog::Dialog(QWidget *parent): QDialog(parent)
{// 标签一(提示输入)lab1 = new QLabel(this);lab1->setText("请输入圆球的半径:");// 标签二(显示结果)lab2 = new QLabel(this);
​// 创建一个编辑框空间(专门用于接收用户的输入圆球半径的值)lEdit = new QLineEdit(this);
​// 创建命令按钮pbt = new QPushButton(this);pbt->setText(tr("计算圆球体积"));
​// 表格布局QGridLayout *lay = new QGridLayout(this);// 第一行的第一列lay->addWidget(lab1,0,0);// 第一行的第二列lay->addWidget(lEdit,0,1);lay->addWidget(lab2,1,0);lay->addWidget(pbt,1,1);
​// 将编辑框信号与槽函数关联,只要文本发生改变就会调用槽函数// connect(lEdit, SIGNAL(textChanged(QString)),this,SLOT(CalculateCircleV()));// 将按钮信号与槽函数关联,只有点击按钮,才会调用槽函数connect(pbt, SIGNAL(clicked()),this,SLOT(CalculateCircleV()));
​
}
​
Dialog::~Dialog()
{
}
void Dialog::CalculateCircleV()
{bool isLoop;QString str;QString val = lEdit->text();int num = val.toInt(&isLoop);double result = 4.0/3.0*PI*num*num;lab2->setText(str.setNum(result));
}

相关文章:

DAY13

面试遇到的新知识点 char str[10],只有10个字符的空间&#xff0c;但是只能存储9个字符&#xff0c;最后一个字符用来存储终止符\0 strlen只会计算\n,不会计算\0 值传递&#xff1a; void test2(char * str) {str "hello\n"; }int main() {char * str;test2(str);…...

WPF 自定义用户控件(Content根据加减按钮改变值)

前端代码&#xff1a; <UserControl.Resources><Style x:Key"Num_Button_Style" TargetType"Button"><Setter Property"MinWidth" Value"30" /><Setter Property"Height" Value"35" />&l…...

CPU、GPU、显卡

CPU VS GPUCPU&#xff08;Central Processing Unit&#xff09;&#xff0c;中央处理器GPU&#xff08;Graphics Processing Unit&#xff09;&#xff0c;图形处理单元GPU 的技术演变CUDA&#xff08;Compute Unified Device Architecture&#xff09; 显卡&#xff08;Video…...

深入理解 Django 自定义用户模型

1. 引言 Django 作为一个强大的 Web 框架&#xff0c;内置了用户认证系统。然而&#xff0c;实际项目中我们通常需要扩展用户模型&#xff0c;以满足不同的业务需求。Django 提供了继承 AbstractUser 的方式&#xff0c;让我们能够轻松地定制用户模型。本文将通过一个自定义用…...

顺序表和链表的区别

顺序表和链表的区别 不同点顺序表链表&#xff08;带头双向循环&#xff09;存储空间物理上一定连续逻辑上连续物理上不一定连续随机访问&#xff08;用下标随机访问&#xff09;支持&#xff1a;O(1)不支持&#xff1a;O(N)任意位置插入或者删除元素可能需要搬移元素&#xf…...

系分-数据库总结

历年试题2024年05月试题 BCN范式&#xff0c;模式分解&#xff0c;触发器类型2023年05月试题 NoSQL基本特点&#xff0c;NoSQL对比&#xff0c;混合数据库2022年05月试题4 两段锁&#xff0c;事务并发&#xff0c;数据一致&#xff0c;本地事务发布20…...

new Date()解析

JavaScript 中的 new Date() 构造函数用于创建一个表示日期和时间的对象。Date 对象使得你可以以多种方式获取、设置和格式化日期和时间。让我们深入解析一下 new Date() 及其用法。 创建 Date 对象 可以通过多种方式创建 Date 对象&#xff1a; 不带参数&#xff1a; let no…...

df 的各种用法 以及与du 的区别

df的用法 在 Linux 中&#xff0c;“df”&#xff08;disk free&#xff09;是一个用于显示磁盘空间使用情况的命令。 一、主要功能 它可以列出文件系统的磁盘空间使用情况&#xff0c;包括磁盘总容量、已使用空间、可用空间以及使用率等信息。 二、常见用法及参数 基本用法&a…...

2024年下半年软考准考证什么时候打印?

2024年下半年软考准考证打印入口网址如下&#xff1a; https://bm.ruankao.org.cn/sign/welcome 广东的同学特别注意&#xff1a;准考证打印截止时间是11月8号&#xff0c;也就是考试前一天。一定要提前打印准考证&#xff0c;考试当天是无法打印的。 2024年下半年软考准考证…...

企业安全运行与维护(Enterprise Security Operation and Maintenance)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…...

每日“亿“题 东方博宜OJ 1424-自然数的分解

原题链接&#xff1a;1424 - 自然数的分解-东方博宜OJ 题目描述 给定自然数 n &#xff0c;将其拆分成若干自然数的和。输出所有解&#xff0c;每组解中数字按从小到大排列。相同数字的不同排列算一组解。 如&#xff0c;读入整数 3 &#xff0c;分解方案如下&#xff1a; …...

初识Linux · 文件(1)

目录 前言&#xff1a; 回顾语言层面的文件 理解文件的预备知识 文件和磁盘 使用和认识系统调用函数 前言&#xff1a; 本文以及下篇文章&#xff0c;揭露的都是Linux中文件的奥秘&#xff0c;对于文件来说&#xff0c;初学Linux第一节课接触的就是文件&#xff0c;对于C…...

【MYSQL】mysql约束---自增长约束(auto_increment)

1、概念 在Mysql中&#xff0c;当主键为自增长后&#xff0c;这个主键的值就不再需要用户输入数据了&#xff0c;而由数据库系统根据定义自动赋值。每增加一条记录&#xff0c;主键会自动以相同的步长进行增长。 注意&#xff1a;自增长约束通常与主键放在一起使用。 通过给…...

基于STM32设计的智能学习台灯(华为云IOT)(238)

文章目录 一、前言1.1 项目介绍【1】开发背景【2】项目实现的功能【3】项目硬件模块组成【4】ESP8266工作模式配置1.2 设计思路【1】整体设计思路【2】整体构架【3】上位机开发思路1.3 项目开发背景【1】选题的意义【2】可行性分析【3】参考文献【4】摘要1.4 开发工具的选择【1…...

网络层协议 --- IP

序言 在这篇文章中我们将介绍 IP协议&#xff0c;经过这篇文章的学习&#xff0c;我们就会了解运营商到底是如何为我们提供服务的以及平时我们所说的内网&#xff0c;公网到底又是什么&#xff0c;区别是什么&#xff1f; IP 地址的基本概念 1. IP 地址的定义 每一个设备接入…...

Java虚拟机(JVM)介绍

**Java虚拟机&#xff08;JVM&#xff09;**是Java平台的核心组件&#xff0c;它提供了一个运行时环境&#xff0c;使得Java程序可以在不同的操作系统和硬件平台上运行而无需修改。 JVM的架构 JVM主要由以下几个部分组成&#xff1a; 类加载器&#xff08;Class Loader&#xf…...

1000题-计算机网络系统概述

术语定义与其他术语的关系SDU&#xff08;服务数据单元&#xff09;相邻层间交换的数据单元&#xff0c;是服务原语的表现形式。在OSI模型中&#xff0c;SDU是某一层待传送和处理的数据单元&#xff0c;即该层接口数据的总和。 - SDU是某一层的数据集&#xff0c;准备传递给下一…...

Authentication Lab | IP Based Auth Bypass

关注这个靶场的其它相关笔记&#xff1a;Authentication Lab —— 靶场笔记合集-CSDN博客 0x01&#xff1a;IP Based Auth Bypass 前情提要 有些开发人员为了图方便&#xff0c;会给站点设置一个 IP 白名单&#xff0c;如果访问站点的用户的 IP 在白名单内&#xff0c;则允许访…...

linux中的火墙优化策略

1.火墙介绍 1. netfilter 2. iptables 3. iptables | firewalld 2.火墙管理工具切换 在rocky9 中默认使用的是 firewalld firewalld -----> iptables dnf install iptables - services - y systemctl stop firewalld systemctl disable firewalld systemctl mask fi…...

GO网络编程(三):海量用户通信系统1:登录功能初步

一、准备工作 需求分析 1)用户注册 2)用户登录 3)显示在线用户列表 4)群聊(广播) 5)点对点聊天 6)离线留言 主界面 首先&#xff0c;在项目根目录下初始化mod&#xff0c;然后按照如下结构设计目录&#xff1a; 海量用户通信系统/ ├── go.mod ├── client/ │ ├──…...

Linux链表操作全解析

Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表&#xff1f;1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时&#xff0c;与数据库的交互无疑是核心环节。虽然传统的数据库操作方式&#xff08;如直接编写SQL语句与psycopg2交互&#xff09;赋予了我们精细的控制权&#xff0c;但在面对日益复杂的业务逻辑和快速迭代的需求时&#xff0c;这种方式的开发效率和可…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...

C++:多态机制详解

目录 一. 多态的概念 1.静态多态&#xff08;编译时多态&#xff09; 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1&#xff09;.协变 2&#xff09;.析构函数的重写 5.override 和 final关键字 1&#…...

BLEU评分:机器翻译质量评估的黄金标准

BLEU评分&#xff1a;机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域&#xff0c;衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标&#xff0c;自2002年由IBM的Kishore Papineni等人提出以来&#xff0c;…...

深入理解Optional:处理空指针异常

1. 使用Optional处理可能为空的集合 在Java开发中&#xff0c;集合判空是一个常见但容易出错的场景。传统方式虽然可行&#xff0c;但存在一些潜在问题&#xff1a; // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...

comfyui 工作流中 图生视频 如何增加视频的长度到5秒

comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗&#xff1f; 在ComfyUI中实现图生视频并延长到5秒&#xff0c;需要结合多个扩展和技巧。以下是完整解决方案&#xff1a; 核心工作流配置&#xff08;24fps下5秒120帧&#xff09; #mermaid-svg-yP…...