【发布时间】:2016-02-12 17:06:06
【问题描述】:
我需要在我的程序中加载一个映射,带有一个整数键和一个字符串值,如下所示:
1, oil
2, car
5, house
我想使用boost::program_options 加载它们。我可以在tutorial 中看到,我可以从选项中加载一个向量,其语法如下:
int opt;
po::options_description desc("Allowed options");
desc.add_options()
("help", "produce help message")
("optimization", po::value<int>(&opt)->default_value(10), "optimization level")
("include-path,I", po::value< vector<string> >(), "include path")
("input-file", po::value< vector<string> >(), "input file");
然后我可以使用program --input-file file1, --input-file file2 来创建一个带有file1 和file2 的向量。从程序选项中实现地图的最佳方式是什么?
例如,我可以使用一个字符串,然后拆分字符串以获得值,例如program --pair "1, oil" --pair "2, car" --pair "5, house",或者我可以使用program --key 1 --value oil --key 2 --value car --key 5 --value car 将它们分开。
我想使用可以从命令行和配置文件轻松编写的东西。哪种方法最好?
【问题讨论】:
标签: c++ dictionary command-line boost-program-options