我想在构造函数(C ++ 98)中为int对的向量提供一个默认值(为空)。我已经尝试过以下内容并且(显然)不起作用。有人能指出我正确的方向吗?
SomeClassName(
const int replace = 1,
const std::vector<std::pair<int, int> > node = std::vector<std::pair<int, int>() >()
);
答案 0 :(得分:1)
std::vector<std::pair<int, int>() >()
是函数向量的值初始化(std::vector
为空),不执行任何操作并返回std::pair<int, int>
。只需删除内部()
即可获得对的向量:
const std::vector<std::pair<int, int> > node = std::vector<std::pair<int, int> >()
你可能还想考虑一个typedef,因为它有很多噪音:
typedef std::vector<std::pair<int, int> > Node;
...
const Node node = Node()
答案 1 :(得分:1)
如果您正在尝试编写一个接受vector
作为输入的构造函数,并且您希望将该参数设置为可选,那么:
定义两个构造函数,一个带有vector
,另一个带有SomeClassName(
const int replace = 1
);
SomeClassName(
const int replace,
const std::vector<std::pair<int, int> > &node
);
:
vector
定义一个构造函数,该构造函数将vector
参数与默认构造的SomeClassName(
const int replace = 1,
const std::vector<std::pair<int, int> > &node = std::vector<std::pair<int, int> >()
);
作为默认值(这是您已经尝试过的,但语法错误) :
onWrite()