我需要一种“优雅”的方式,在声明阶段用另一个向量的内容和一些额外的元素来初始化一个向量。
我想解决的是:
让我们考虑以下(示例)带有初始化的声明:
const std::vector<std::string> c90_types = {
"char",
"signed char",
"unsigned char",
"short",
"unsigned short",
"int",
"unsigned int",
"long",
"unsigned long",
"float",
"double",
"long double"
};
const std::vector<std::string> c99_types = {
"char",
"signed char",
"unsigned char",
"short",
"unsigned short",
"int",
"unsigned int",
"long",
"unsigned long",
"float",
"double",
"long double",
"long long",
"unsigned long long",
"intmax_t",
"uintmax_t"
};
正如您所看到的,c99_types
有一个子集,它就是c90_types
。我希望避免需要更改子集,然后手动更改“超集”的情况,只是为了避免可能引入错误的额外步骤:)
顺便说一句,我不想写这样的代码:
second.insert(second.begin(), first.begin(), first.end());
second.push_back(something);
有什么好的和干净的解决方案吗?
https://stackoverflow.com/questions/28963884
复制相似问题