如何将int对向量的默认值设置为空?

时间:2017-09-11 23:23:05

标签: c++ c++98

我想在构造函数(C ++ 98)中为int对的向量提供一个默认值(为空)。我已经尝试过以下内容并且(显然)不起作用。有人能指出我正确的方向吗?

SomeClassName(
const int replace = 1, 
const std::vector<std::pair<int, int> > node = std::vector<std::pair<int, int>() >()
);

2 个答案:

答案 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作为输入的构造函数,并且您希望将该参数设置为可选,那么:

  1. 定义两个构造函数,一个带有vector,另一个带有SomeClassName( const int replace = 1 ); SomeClassName( const int replace, const std::vector<std::pair<int, int> > &node );

    vector
  2. 定义一个构造函数,该构造函数将vector参数与默认构造的SomeClassName( const int replace = 1, const std::vector<std::pair<int, int> > &node = std::vector<std::pair<int, int> >() ); 作为默认值(这是您已经尝试过的,但语法错误) :

    onWrite()