gpt4 book ai didi

c++ - std::array 函数有什么意义?

转载 作者:行者123 更新时间:2023-12-01 14:39:01 24 4
gpt4 key购买 nike

在 C++ 中 array实现,一个empty提供了方法。然而,正如实现建议的那样:

constexpr bool
empty() const noexcept { return size() == 0; }

仅当 array 的大小为真时才返回 true是 0 那有什么意义呢?

std::array 的典型用例是这样的:std::array<type,size> a = {init here maybe};a[index] = value;之后。

是否有任何用例,您可以声明一个零长度数组或从某处获取一个空检查有用的数组?

最佳答案

is there any use case where you would declare a zero length array or get it from somewhere that an empty check would be useful?

如果您使用数组大小​​的模板。例如

#include <array>

template <std::size_t s>
void function(std::array<int, s> const& array) {
if (!array.empty()) {
// other array operations ...
}
}

int main() {
auto empty_array = std::array<int, 0>{};
function(empty_array);
auto array = std::array<int, 9>{};
function(array);
}

在这种情况下,function 接受不同大小的数组,因此我们不能 100% 确定它不为空。

编辑:

此外,sizeempty 成员在我们没有其他方法获取大小(在我的第一个示例中,从技术上讲,您可以从 s 中获取大小)。例如

template <class Container>
void function(Container const& array) {
if (!array.empty()) {
// other container operations ...
}
}

关于c++ - std::array 函数有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62986581/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com