c++ - std::end 如何在 native 数组上工作

标签 c++ c++11

<分区>

在现代 C++ 中,我们可以在原生数组上使用 std::end。我想问一下这是如何工作的,以了解对此的性能考虑。

最佳答案

如果你有一个名为 a 的数组,大小为 N,那么 std::end(a) 的含义相同>a + N。它不需要执行任何运行时工作来查找数组的大小,因为该大小在编译时已知。

请注意,std::end 不适用于指针。它仅适用于尚未衰减为指针的数组,因此大小信息静态存在于调用站点。

关于c++ - std::end 如何在 native 数组上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42292122/

相关文章:

c++ - 遍历std::initializer_list

c++ - 在一行上有多个 'using std::foo' 语句的紧凑方法?

c++ - 你能分配一个与 make_shared 等效的数组吗?

c++ - 任意功能的定时器

c++ - 成员结构位域元素的初始化列表初始化导致 IAR ARM 中的错误

c++ - 运算符作为友元重载函数?

c++ - 对于不同的点 OpenGL 查看相同的颜色

c++ - MacBook Pro 中的 std::cout 窗口在哪里?

c++ - 使用 clang 编译 std::tuple 时遇到问题

c++ - 分离颜色成分