如果存在,则从默认值创建特定值的容器

时间:2015-05-28 18:24:57

标签: c++

我有一些预定义值的静态const向量,我想创建一个新的(可能是指针/ ref),它将包含自定义值(来自某处)(如果存在)或来自预定义值的值。此外,我真的不想将预定义的值复制到新的值。

以下代码(有错误)或多或少地描述了这种情况:

static const std::vector<int> defvals = { 1, 2, 3, ... };
const std::vector<int>& real = defvals;

std::vector<int> custom;
if (hasCustom) {
   custom.push_back(1); ...
}
real = custom; // **not possible**
....
for (int val : real) {
   // do smth
}

1 个答案:

答案 0 :(得分:0)

您可以使用ternary operator轻松完成此操作,只需在填充custom后声明static const std::vector<int> defvals = { 1, 2, 3, ... }; std::vector<int> custom; if (hasCustom) { custom.push_back(1); ... } // Get a reference to the correct vector. const std::vector<int>& real = hasCustom ? custom : defvals; for (int val : real) { // do smth }

locArr[0] = l->xloc;
locArr[1] = l->yloc;
push(s, locArr);