1

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

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

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

4

2 回答 2

4

如果没有可选的或其他的东西,就没有办法做到这一点,因为std::array::empty()

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

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

于 2012-08-19T16:07:04.143 回答
2

是的。只是不要让它未初始化。考虑一下,boost::optional<array<unsigned char, 2>>如果它并不总是携带有用的数据。

于 2012-08-19T16:02:42.743 回答