如何优化此代码?(QT5)
How can I optimize this code? (Qt5)
我编写了此代码示例,发现它肯定看起来不好,但是我很难优化它。也许有人可以帮助我。QT5。
int MainWindow::readVariable(QVector<double> &value, QVector<double> &time, QString type, QFile *f)
{
int buffer_size = 0;
quint64 read_bytes = 0;
while (1)
{
if (type == "u_int32_t")
{
buffer_size = sizeof(unsigned);
unsigned dest = 0;
read_bytes = f->read(reinterpret_cast<char*>(&dest), buffer_size);
value.append(dest);
break;
}
if (type == "int32_t")
{
buffer_size = sizeof(int32_t);
int32_t dest = 0;
read_bytes = f->read(reinterpret_cast<char*>(&dest), buffer_size);
value.append(dest);
break;
}
/* ... and so on for many-many variable types */
}
}
" type"值我从XML文件中读取。
可能是使用
之类的模板的想法template< typename T >
void readVariable( QVector<double>& value, QVector<double>& time, QFile* f)
{
int buffer_size = 0;
quint64 read_bytes = 0;
buffer_size = sizeof( T );
T dest = 0;
read_bytes = f->read( reinterpret_cast<char*>(&dest), buffer_size );
value.append(dest);
}
您可以像这样使用
QVector<double> v;
QVector<double> t;
QFile* f = nullptr;
readVariable<int>( v, t, f );
其中 int 是类型
您可以使用多态性而不是使用多态性并减少重复的代码。
相关文章:
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 代码在main()中运行,但在函数中出现错误
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 编译包含字符串的代码时遇到问题
- 我在c++代码中生成了一个运行时#3异常
- 如何在linux终端中同时编译和运行c++代码
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 在Linux for Windows上编译C++代码时出错
- 我的字符计数代码计算错误.为什么
- 孤立代码块在结构中引发异常
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- Qt5 [make -snap] 无法正确编译:进程"/usr/bin/snap"代码 1 退出
- 使用 msvc 15 在 Qt5.13 中编译 CUDA 代码
- 禁用 Qt5 代码中的旧(Qt4 样式)信号槽语法
- CLION QT5-退出代码-1073741515(0xc0000135)
- 如何优化此代码?(QT5)
- 错误:Qt5视频渲染错误代码80040218
- Qt5:此代码使用msvc2012编译正常,但使用MinGW编译时出现错误..为什么?