前言
Qt 开发中,涉及一些常用的数据类型以及数据运算函数,在此做记录便于查阅和使用
Qt 基本类型声明 — QtType/QtGlobal
Qt 数据类型 | POSIX 标准等效定义 | 字节数 |
---|
qint8 | signed char | 1 |
qint16 | signed short | 2 |
qint32 | signed int | 4 |
qint64 | long long int | 8 |
qlonglong | long long int | 8 |
quint8 | unsigned char | 1 |
quint16 | unsigned short | 2 |
quint32 | unsigned int | 4 |
quint64 | unsigned long long int | 8 |
qulonglong | unsigned long long int | 8 |
uchar | unsigned char | 1 |
ushort | unsigned short | 2 |
uint | unsigned int | 4 |
ulong | unsigned long | 8 |
qreal | double | 8 |
qsizetype | ssize_t | 8 |
qfloat16 | —— | 2 |
Qt 常用数值函数 — QtNumeric
函数原型 | 功能 |
---|
T qAbs(const T &value) | 返回变量 value 的绝对值 |
… qAddOverflow(T v1, T v2, T *result) | 将 v1 + v2 装入 result,若 result 使数据类型 T 溢出则返回 true |
… qMulOverflow(T v1, T v2, T *result) | 将 v1 * v2 装入 result,若 result 使数据类型 T 溢出则返回 true |
… qSubOverflow(T v1, T v2, T *result) | 将 v1 - v2 装入 result,若 result 使数据类型 T 溢出则返回 true |
quint qFloatDistance(float a, float b) | 返回 a 和 b 之间可表示的浮点数个数 |
int qFpClassify(double val) | 返回浮点值的类型 |
bool qFuzzyCompare(double p1, double p2) | 比较两个浮点数,若相等则返回 true,不等则返回 false |
bool qFuzzyIsNull(double d) | 若 d 的绝对值在 0.0 的 1E-12 内则返回 true,否则返回 false |
double qInf() | 将无限大数的位模式作为双精度类型返回 |
bool qIsFinite(double d) | 若 d 是有限数则返回 true |
bool qIsInf(double d) | 若 d 等于无穷大则返回 true |
bool qIsNaN(double d) | 若 d 不是一个数则返回 true |
double qQNaN() | 将静态NaN的位模式返回为双精度类型 |
qint64 qRound64(double d) | 返回与 d 最为近似的 qint64 类型整数 |
补充函数,头文件 QtMinMax
函数原型 | 功能 |
---|
const T & qBound(const T &min, const T &val, const T &max) | 返回 value 限定在 min ~ max 的值 |
const T & qMax(const T &a, const T &b) | 返回 a 和 b 中的最大值 |
const T & qMin(const T &a, const T &b) | 返回 a 和 b 中的最小值 |
Qt 常用数学函数 — QtMath
函数原型 | 功能 |
---|
auto qSin(T v) | 返回输入为弧度制 v 的
sin
\sin
sin |
auto qCos(T v) | 返回输入为弧度制 v 的
cos
\cos
cos |
auto qTan(T v) | 返回输入为弧度制 v 的
tan
\tan
tan |
auto qASin(T v) | 返回输入为弧度制 v 的
arcsin
\arcsin
arcsin |
auto qAcos(T v) | 返回输入为弧度制 v 的
arccos
\arccos
arccos |
auto qAtan(T v) | 返回输入为弧度制 v 的
arctan
\arctan
arctan |
auto qAtan2(T1 y, T2 x) | 返回输入为弧度制 v 的
arctan
2
\arctan2
arctan2 |
float qDegreesToRadians(float degrees) | 将角度制转换为弧度制 |
float qRadiansToDegrees(float radians) | 将弧度制转换为角度制 |
int qCeil(T v) | 返回不小于 v 的最小整数 |
auto qExp(T v) | 返回
e
v
e^{v}
ev |
auto qFabs(T v) | 返回 v 的绝对值 |
int qFloor(T v) | 返回不大于 v 的最大整数 |
auto qHypot(F first, Fs… rest) | 在任意多个维度上返回到原点的距离 |
auto qLn(T v) | 返回
ln
v
\ln v
lnv |
qNextPowerOfTwo(quint32 value) | 返回比 value 大 2 的最近次幂 |
auto qPow(T1 x, T2 y) | 返回
x
y
x^y
xy |
auto qSqrt(T v) | 返回
v
\sqrt{v}
v
,如果 v 是负数则返回 NaN |