这段代码的功能是在任务列表中查找符号为'_symbol'的任务,并将其对应的表格项的文本设置为'text'。优化建议如下:

  1. 将TASK_MAX_NUM和TASK_INFO_NUM定义为常量,避免在循环中重复计算。
  2. 将m_taskInfoList[m].size()计算结果缓存到一个变量中,避免在循环中重复计算。
  3. 当找到符号为_symbol的任务时,可以直接跳出两层循环,避免继续无谓的循环。
  4. 可以使用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语句是为了跳出两层循环,这种用法虽然不太优雅,但可以避免使用标志变量或者嵌套循环等复杂的控制结构。

C++ 任务列表查找符号并设置表格项文本优化

原文地址: https://www.cveoy.top/t/topic/mRDn 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录