【发布时间】:2017-02-17 15:42:42
【问题描述】:
在现代 C++ 中,我们可以在原生数组上使用 std::end。我想问一下这是如何工作的,以了解对此的性能考虑。
【问题讨论】:
-
另见 Motti 的回答 to this related question。
在现代 C++ 中,我们可以在原生数组上使用 std::end。我想问一下这是如何工作的,以了解对此的性能考虑。
【问题讨论】:
如果您有一个名为a 且大小为N 的数组,那么std::end(a) 与a + N 的含义相同。它不需要做任何运行时的工作来查找数组的大小,因为大小在编译时是已知的。
请注意,std::end 不适用于指针。它仅适用于尚未衰减为指针的数组,因此大小信息静态存在于调用站点。
【讨论】: