如何为函数中的矢量参数赋予默认值

时间:2014-01-13 12:45:36

标签: c++ vector default-value

采用以下示例代码:

typedef std::vector<uint8_t> uint8Vect_t;

void setSomeThing(int value, uint8Vect parameters)
{
    //... do some stuff ...
    if (parameters.size() > 0)
    {
        //... do some stuff with parameters ...
    }
}

int main(void)
{
    uint8Vect intParams;
    intParams.push_back(1);
    intParams.push_back(2);

    // Case 1 - pass parameters
    setSomeThing(1, intParams);

    // Case 2 - pass no parameters, default value should be used
    setSomeThing(1);

    return 0;
}

我的问题是我想为函数的vector参数设置一个默认值,如下所示:

setSomeThing(int value, uint8Vect parameters = 0)

如果没有传递参数“parameters”,则默认使用空向量。但是,我无法弄清楚语法应该是什么 - 如果可能的话。我知道我可以使用重载函数,但无论如何我想知道如何执行此操作。

2 个答案:

答案 0 :(得分:3)

这样的事情:

void setSomeThing(int value, uint8Vect_t parameters = uint8Vect_t()) { .... }

答案 1 :(得分:3)

调用默认构造函数将构造一个空向量。

#include <vector>
typedef std::vector<uint8_t> uint8Vect_t;
void setSomeThing(int value, uint8Vect_t parameters = uint8Vect_t{})
{
    if (parameters.size() > 0)
    {

    }
}