小编bib*_*sey的帖子

try-catch阻止会降低性能吗?

这个链接指出,

为了捕获异常,我们必须将一部分代码置于异常检查之下.这是通过将该部分代码包含在try块中来完成的.当在该块内出现异常情况时,抛出异常将控制转移到异常处理程序.如果没有抛出异常,代码将继续正常运行并忽略所有处理程序.

这是否意味着由于在运行时"检查"的额外任务,使用try块会降低性能?

c++ performance exception-handling exception try-catch

33
推荐指数
2
解决办法
3万
查看次数

set :: insert的复杂性

我已经读过一个集合中的插入操作只需要log(n)时间.怎么可能?

要插入,首先我们在排序数组中找到新元素必须位于的位置.使用二进制搜索需要log(n).然后要插入该位置,其后面的所有元素都应该向右移动一个位置.这需要另外n次.

我怀疑是基于我的理解,set是作为数组实现的,元素是按排序顺序存储的.如果我的理解是错误的,请纠正我.

c++ stl set time-complexity

17
推荐指数
1
解决办法
3万
查看次数

将"int"或"bool"形式的标志传递给函数,在性能方面更好吗?

说,我有一个如下所示的功能

void caller()
{
    int flag = _getFlagFromConfig();
    //this is a flag, which according to the implementation
    //is supposed to have only two values, 0 and 1 (as of now)

    callee_1(flag);
    callee_2(1 == flag);
}

void callee_1(int flag)
{
    if (1 == flag)
    {
        //do operation X
    }
}

void callee_2(bool flag)
{
    if (flag)
    {
        //do operation X
    }
}
Run Code Online (Sandbox Code Playgroud)

哪个被调用函数将是更好的实现?

我已经完成了这个链接,并且我非常确信在一个if条件下将bool用于比较没有太大的性能影响.但在我的情况下,我将标志作为整数.在这种情况下,第二个被叫者是否值得去?

c++ boolean function

1
推荐指数
1
解决办法
1454
查看次数