【发布时间】:2018-07-21 23:13:51
【问题描述】:
template<typename K, typename V, int N>
class KVList
{
int m_size;
K m_key[N] = {};
V m_value[N] = {};
public:
KVList& add(const K&, const V&)
{
//Check if index is empty or null
//Add key value pair
}
}
大家好,
我正在创建一个具有 3 个模板参数的模板类。如上所述,我的问题是如何确定某个索引处的数组是否为 NULL 或没有用户定义的值。
目前将这些数据类型作为模板参数传递:
w4::KVList<std::string, double, 5> x;
w4::KVList<std::string, std::string, 5> y;
我在想也许类似于将类型转换为 bool 的方法可能会有所帮助,但我被卡住了。
如何检查索引是否有空值 KVList 接受与上面指定的数据类型或类不同的数据类型或类?
【问题讨论】:
-
数组元素从不“空”。他们将永远有价值。你初始化你的数组,所以根据类型,它们将具有默认构造的对象或零初始化值。
-
没有“空”或“空”双精度或整数这样的东西。
-
明明有键值对,为什么还要问数组?
-
@Schwiftyy 您能否详细说明您真正想用该代码解决什么问题?可能有您可能没有想到的替代方案。例如。
std::optional可能会派上用场。 -
@TheDude 它应该是一个并行数组,它使用 N 来声明数组的大小,我猜想遍历它。 K 和 V 像字典一样使用。让我改写一下,我想知道数组索引是否不是用户定义的,所以我可以在索引处添加值。
标签: c++ arrays c++11 templates null