前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >技术日志挑战——第2天:0725

技术日志挑战——第2天:0725

原创
作者头像
Arya
发布2024-07-25 18:18:20
790
发布2024-07-25 18:18:20

第2天

技术总结:

技术项目工作,包括项目进展、遇到的问题及解决方案等。

今天在做一个用固定宽度的带覆盖两条线之间的空隙的程序,需要根据重叠率进行计算,目前用的方法是之前的方式,发现有一些问题,就是有一些点会计算不到。

然后编写额外处理的循环进行异常的点处理,虽然大部分能够被识别到并处理优化,但是仍然有不少点的计算是错的。

目前计划先继续往下走,把整体的逻辑走通,走通之后再回过头来看这部分该如何优化,或者应该换一个思路进行编程。

学习笔记:

qt中的三元表达式

在 Qt(以及整个 C++)中,三元表达式(也叫条件运算符)是一个简洁的条件判断方式。其语法如下:

代码语言:java
复制
condition ? expression1 : expression2;

其中,condition 是一个布尔表达式,如果 conditiontrue,则整个表达式的值为 expression1,否则为 expression2

这是一个简单的例子,展示了如何在 Qt 中使用三元表达式:

代码语言:java
复制
#include <QCoreApplication>
#include <QDebug>

int main(int argc, char *argv[]) {
    QCoreApplication a(argc, argv);

    int x = 5;
    int y = 10;

    // 使用三元表达式
    int max = (x > y) ? x : y;

    qDebug() << "The maximum value is:" << max;

    return a.exec();
}

在这个示例中:

  1. 我们有两个整数 xy
  2. 使用三元表达式 (x > y) ? x : y 计算 xy 中的较大值,并将结果赋值给 max
  3. 使用 qDebug() 打印出 max 的值。

三元表达式在许多场合下可以使代码更加简洁和易读,特别是用于简单的条件判断时。它们在 Qt 和标准 C++ 中都是相同的。

更复杂的例子

如果你想在 Qt 中用三元表达式处理更复杂的逻辑,例如决定要显示的字符串,你可以这样:

代码语言:java
复制
#include <QCoreApplication>
#include <QString>
#include <QDebug>

int main(int argc, char *argv[]) {
    QCoreApplication a(argc, argv);

    bool isMorning = true;
    QString greeting = isMorning ? QString("Good morning") : QString("Good evening");

    qDebug() << greeting;

    return a.exec();
}

在这个示例中:

  1. 我们有一个布尔变量 isMorning,表示当前是否是早上。
  2. 使用三元表达式决定 greeting 应该是 "Good morning" 还是 "Good evening"
  3. 使用 qDebug() 打印出 greeting 的值。

这个示例展示了如何在 Qt 中使用三元表达式来处理 QString 对象,从而根据条件生成不同的字符串。

char 和 qchar的区别

charQChar 是两种不同的数据类型,分别用于不同的上下文和库。以下是它们的主要区别:

char

  • 类型定义char 是 C++ 标准库中的基本数据类型之一,用于表示单个字符。
  • 大小:通常占用 1 字节(8 位)的内存。
  • 编码:通常使用 ASCII 编码,但也可以用于其他编码方式(如 UTF-8)。
  • 范围:可以表示从 -128 到 127 或从 0 到 255 的整数值,具体取决于是否使用有符号或无符号类型。
  • 使用场景:主要用于 C++ 标准字符串(如 std::string)和 C 风格字符串(如 char[]char*)。

QChar

  • 类型定义QChar 是 Qt 库中定义的数据类型,用于表示 Unicode 字符。
  • 大小:通常占用 2 字节(16 位)的内存。
  • 编码:支持 Unicode 编码,可以表示几乎所有的 Unicode 字符。
  • 范围:可以表示从 U+0000 到 U+FFFF 的 Unicode 字符。
  • 使用场景:主要用于 Qt 的字符串类(如 QString),这些类支持 Unicode 字符串操作。

主要区别总结

  • 编码支持char 主要用于 ASCII 或 UTF-8 编码,而 QChar 用于 Unicode 编码。
  • 内存占用char 通常占用 1 字节,而 QChar 占用 2 字节。
  • 功能和方法QChar 提供了许多方便的方法来处理 Unicode 字符,而 char 则更基础,依赖于标准库或自定义方法。

转换方法

  • QChar char:可以使用 QChar::toLatin1()QChar::toAscii() 方法将 QChar 转换为 char
  • char QChar:可以直接将 char 赋值给 QChar,因为 QChar 提供了相应的构造函数。

例如:

代码语言:java
复制
QChar qchar('A'); // 直接从 char 构造 QChar
char ch = qchar.toLatin1(); // 将 QChar 转换为 char

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第2天
    • 技术总结:
      • 学习笔记:
        • qt中的三元表达式
          • char 和 qchar的区别
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档