【发布时间】:2017-04-20 10:56:13
【问题描述】:
// Example program
#include <iostream>
#include <string>
#include <set>
#include <map>
#include <algorithm>
struct cmp {
bool operator()(std::string i, const std::pair<std::string,std::string>& p) const
{
return i < p.first;
}
bool operator()(const std::pair<std::string, std::string>& p, std::string i) const
{
return p.first < i;
}
};
int main(){
std::set<std::string> s1 {"--name", "--id"}; //Conditionally defined mandatory parameters
std::map<std::string, std::string> s2 { {"--name","Admin"}, {"--group","Group1"}}; //options given by user
std::set<std::string> result;
std::set_difference(s1.begin(), s1.end(), s2.begin(), s2.end(),
std::inserter(result, result.end()), cmp());
std::cout << *result.begin();
}
我希望输出是这样的,如果用户错过了任何一个强制参数,它应该抛出错误,同时如果用户提到除了强制参数之外的任何额外参数,则再次预期错误。
set_symmetric_difference 也无法使用它。
【问题讨论】:
标签: c++