boost :: program_options从控制台读取一个整数数组

Aka*_*wal 2 c++ boost boost-program-options

我想使用boost :: program_options从控制台读取一个整数数组.数组的长度未知,我不想一次尝试读取所有数据.我怎样才能做到这一点?

我现在在做的是

$ ./foo --array"1,2,3"

然后通过拆分输入字符串填充arr [].

但我想要类似的东西

$ ./foo --array 1 --array 2 --array 3

并在arr []中阅读.也想知道arr []的长度,不想让那个命令行参数.

Rob*_*edy 5

使用向量而不是数组.然后,只需指定一个向量作为选项类型:

po::options_description desc("Allowed options");
desc.add_options()
    ("array", po::value< vector<int> >())
;
Run Code Online (Sandbox Code Playgroud)

命令行上的每个选项都将附加到向量.