gpt4 book ai didi

c++ - 传递 span 和 std::array 作为参数有什么区别?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:18:13 26 4
gpt4 key购买 nike

在他的C++ Core Guidelines , Bjarne Stroustrup 建议在按引用传递数组时使用 span。为什么不只传递一个 std::array 对象?

最佳答案

  1. 按值传递 std::array 将是复制它们。 gsl::span 的要点是采用它们的函数引用现有的数据数组。

  2. gsl::span 能够获取运行时定义大小的数组。 std::array 在编译时固定。

  3. gsl::span 不关心什么类型拥有数组;它只是一个指针+大小。因此,基于 span 的接口(interface)可以从 std::vectorQVector 和许多其他类型中获取数据。基于 std::array 的接口(interface)要求您使用该特定容器。

关于c++ - 传递 span<T> 和 std::array 作为参数有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41512690/

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