gpt4 book ai didi

c++ - 降低 C++ 中的圈复杂度

转载 作者:行者123 更新时间:2023-12-03 07:22:46 28 4
gpt4 key购买 nike

关闭。这个问题需要details or clarity .它目前不接受答案。












想改进这个问题?通过 editing this post 添加详细信息并澄清问题.

1年前关闭。




Improve this question




我想问一个带有多个条件的简单 if else 语句如何
可以降低圈复杂度吗?
例如:

   std::string x; 
if(cond)
x = "Value1";
else if(cond2)
{
if(cond3)
x = "Value2";
else if(cond4)
x = "Value3";
else
x = "Value4";
}
else if(cond5)
x = "Value6";
else if(cond6)
x = "Value7";





最佳答案

我不得不谷歌它。 Wikipedia说:

Cyclomatic complexity is a software metric used to indicate the complexity of a program. It is a quantitative measure of the number of linearly independent paths through a program's source code.


您可以绘制表格或图形:
                            *
|
----------------------
| | | |
cond cond2 cond5 cond6
| | | |
x+=1 | x+=5 x+=6
|
-----------------
| | |
cond3 cond4 else
| | |
x+=2 x+=3 x+=4
现在您可以看到没有两个分支导致相同的结果。如果我们能找到导致相同结果的分支,那么我们可以尝试减少路径的数量。同样没有更多信息,我不得不假设所有条件都是独立的。如果它们之间有关系,例如 cond2 => cond3那么你可以减少分支的数量。

关于c++ - 降低 C++ 中的圈复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64593697/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com