如何确定未知类型数组的索引是否为空?

时间:2018-02-11 19:13:08

标签: c++ arrays c++11 templates null

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是否接受与上面指定的数据类型或类不同的数据类型或类?

1 个答案:

答案 0 :(得分:1)

  

我想知道数组索引是否不是用户定义的,所以我可以在索引处添加值。

您可以添加第三个bool

的C风格数组
bool isSet[N] = {};

并在设置/取消设置键和值时设置/取消设置值。