这个链接指出,
为了捕获异常,我们必须将一部分代码置于异常检查之下.这是通过将该部分代码包含在try块中来完成的.当在该块内出现异常情况时,抛出异常将控制转移到异常处理程序.如果没有抛出异常,代码将继续正常运行并忽略所有处理程序.
这是否意味着由于在运行时"检查"的额外任务,使用try块会降低性能?
我已经读过一个集合中的插入操作只需要log(n)时间.怎么可能?
要插入,首先我们在排序数组中找到新元素必须位于的位置.使用二进制搜索需要log(n).然后要插入该位置,其后面的所有元素都应该向右移动一个位置.这需要另外n次.
我怀疑是基于我的理解,set是作为数组实现的,元素是按排序顺序存储的.如果我的理解是错误的,请纠正我.
说,我有一个如下所示的功能
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用于比较没有太大的性能影响.但在我的情况下,我将标志作为整数.在这种情况下,第二个被叫者是否值得去?