我允许在我的程序中只插入10行(严格)代码。我已经优化了编程到简洁的程序。我已经发布了以下代码。
if (std::find(outvar.begin(), outvar.end(), line[x].tokens[0]) == outvar.end() || (std::find(inputs.begin(), inputs.end(), line[x].tokens[4]) == inputs.end())
{
cerr << "Undefined variable " << endl;
exit(1);
}
if (opr[x].type == "MUL" && opr[x1].asap_value == my_cycle + 1)
{
opr[x1].asap_value = my_cycle + 2;
update_slack();
update_matrix(opr[x1].opid, 0);
}
if (latency < (opr[p2].asap_value + opr[p2].latency_op - 1) || opr[p2].asap_value == 0)
{
cerr << "Latency value is too less for this circuit \n"; return -1;
}
仅此一行需要10行,我还需要添加2行必修代码。我无法进一步减少它。基本上我希望将err(cout)语句和exit(return)语句组合成一个语句。
非常感谢任何帮助。
谢谢
答案 0 :(得分:1)
您可以使用逗号将其全部变为一行:
opr[x1].asap_value = my_cycle + 2, update_slack(), update_matrix(opr[x1].opid, 0);
不确定这是否被视为作弊。您还没有明确说明规则是什么。
答案 1 :(得分:0)
您需要了解语句数量和代码效率之间没有明显的关系。这是因为,例如语句cout<<x;
不是处理器的单个指令。处理器必须执行数百甚至数千条指令才能实现该语句的目标。此外,还有一些语句,如a = b + c;
,它们被翻译成2-3条指令。
因此,通过减少语句数量,您无法优化代码。还有其他优化方法,例如使用更有效的算法。