检查是否已初始化std:unsigned char数组的好习惯

时间:2012-08-19 16:00:35

标签: c++ stl

我需要检查std:array是否已初始化(或某些默认的常用值)。 该数组是可选的,所以我需要检查它是否有值。 我不使用提升。 我试过这个:

array<unsigned char, 2> testArr;
testArr.fill(0);
if(testArr.empty()){
    cout << "testArr is empty" <<endl ;
}

我正在寻找一种简单的方法来初始化为默认值并检查默认值是否没有迭代(由我自己),是否有什么?

2 个答案:

答案 0 :(得分:4)

由于std::array::empty()

,如果没有可选项或其他内容,则无法执行此操作

检查容器是否没有元素,即begin()== end()。

因此,检查容器中没有元素(即std::array<T, 0>),没有其他内容。您应该使用任何可选类,或迭代数组并检查值。如果您不想使用boost::optional - 请编写自己的可选项boost::optional。这很简单。

答案 1 :(得分:2)

是。只是不要让它没有初始化。如果它不总是携带有用的数据,请考虑boost::optional<array<unsigned char, 2>>之类的内容。