Мне нужен "элегантный" способ инициализации вектора в фазе объявления с содержимым другого и несколькими дополнительными элементами.
Я хочу решить следующее:
Рассмотрим следующую (примерную) декларацию с инициализацией:
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);
Любые хорошие и чистые решения для этого?