在 C++ 中,我想要一个函数,该函数采用 vector 类型的可选参数。如果未提供参数,我希望变量的大小为 0。我目前有
void v_connect::import(vector<int> vid_,vector<double> vpos_,vector<int> vbd_,vector<int> bd_ss_=std::vector<int>() )
但这行不通。基本上,如果用户提供可选参数 bd_ss_
我想检查 bd_ss_.size()!=0
然后做一些额外的事情。如果用户不提供参数,我需要 bd_ss.size()==0
。这可能吗?
最佳答案
无法判断可选参数是否由用户提供。但是,您可以使用重载:
void v_connect::import(
std::vector<int> vid_,
std::vector<double> vpos_,
std::vector<int> vbd_,
std::vector<int> bd_ss_)
{
check(!bd_ss_.empty());
do_extra_stuff();
do_import(vid_, cpos_, vbd_, bd_ss_);
}
void v_connect::import(
std::vector<int> vid_,
std::vector<double> vpos_,
std::vector<int> vbd_)
{
do_import(vid_, cpos_, vbd_, std::vector<int>());
}
// private:
void v_connect::do_import(
std::vector<int> vid_,
std::vector<double> vpos_,
std::vector<int> vbd_,
std::vector<int> bd_ss_)
{
// common import code goes here
}
关于C++:默认参数和 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11832134/