哪个更好?添加参数或使用成员函数

时间:2018-11-27 07:29:45

标签: c++ parameters member-functions

void recursiveFunction(container_t container) {
    size_t max   = container.size();
    ...
}

这是我的第一个实现。

void recursiveFunction(container_t container, const size_t max) {
    ...
}

这是我的第二次实现。

这些函数是递归函数,因此多次调用size()函数或必须添加参数。但是,我不想使用全局变量。 我该怎么办?

ostream& printAnswer(ostream& os, const completeTree_t& completeTree, size_t index) {
    size_t left  = index * 2;
    size_t right = index * 2 + 1;
    size_t max   = completeTree.size();
    if( left  < max )
        printAnswer(os, completeTree, left);
    os << completeTree[index];
    if( right < max )
        printAnswer(os, completeTree, right);
    return os;
}

这是我的完整源代码。

1 个答案:

答案 0 :(得分:1)

C ++标准库容器上的

size是O(1)。如果您也是,则不要将其作为参数传递。

如果size在您的容器中不是O(1),那么我建议您重命名该方法,因为它将使您的代码的未来开发人员感到困惑。 然后如果对代码进行性能分析显示它是瓶颈,则将大小显式传递为参数。