C++ 任务列表查找符号并设置表格项文本优化
这段代码的功能是在任务列表中查找符号为'_symbol'的任务,并将其对应的表格项的文本设置为'text'。优化建议如下:
- 将TASK_MAX_NUM和TASK_INFO_NUM定义为常量,避免在循环中重复计算。
- 将m_taskInfoList[m].size()计算结果缓存到一个变量中,避免在循环中重复计算。
- 当找到符号为_symbol的任务时,可以直接跳出两层循环,避免继续无谓的循环。
- 可以使用range-based for循环来简化代码。
优化后的代码如下:
const int TASK_MAX_NUM = 100;
const int TASK_INFO_NUM = 5;
for (int m = 0; m < TASK_MAX_NUM; m++) {
int size = m_taskInfoList[m].size();
for (int n = 0; n < TASK_INFO_NUM && n < size; n++) {
if (_symbol == m_taskInfoList[m][n].s) {
QTableWidgetItem* tItem = taskWidget->item(m, m_taskInfoList[m][n].tableColIndex);
if (tItem) {
tItem->setText(text);
}
goto found;
}
}
}
found:
注意:使用goto语句是为了跳出两层循环,这种用法虽然不太优雅,但可以避免使用标志变量或者嵌套循环等复杂的控制结构。
原文地址: https://www.cveoy.top/t/topic/mRDn 著作权归作者所有。请勿转载和采集!