std: :array -- size() 和 max_size() 之间的区别
std: :array -- difference between size() and max_size()
C++ 中 std::array 的 size() 和 max_size() 函数有什么区别?
array<int,5> arr{ 1, 2, 3, 4, 5 };
cout << arr.size();
/* Output : 5 */
array<int, 5> arr{ 1, 2, 3, 4, 5 };
cout << arr.max_size();
/* Output : 5 */
What is the difference between size() and max_size() functions for std: :array in C++?
后者有前缀max_
。 std::array
.
它们之间没有其他实际区别
区别是概念上的。 size
是容器中的当前元素数,max_size
是容器可以包含多少元素的理论上限。由于 std::array
中的元素数是常数,因此当前元素数与可能存在的元素数完全相同。对于其他容器,存在实际差异。
使用 std::array
的 max_size
成员函数在概念上是愚蠢的。它的存在是为了 std::array
符合 Container
概念(例如命名要求),这允许它与其他容器统一使用,这在模板中很有用。
我认为max_size()指的是数组的容量,而不是数组的实际大小。
C++ 中 std::array 的 size() 和 max_size() 函数有什么区别?
array<int,5> arr{ 1, 2, 3, 4, 5 };
cout << arr.size();
/* Output : 5 */
array<int, 5> arr{ 1, 2, 3, 4, 5 };
cout << arr.max_size();
/* Output : 5 */
What is the difference between size() and max_size() functions for std: :array in C++?
后者有前缀max_
。 std::array
.
区别是概念上的。 size
是容器中的当前元素数,max_size
是容器可以包含多少元素的理论上限。由于 std::array
中的元素数是常数,因此当前元素数与可能存在的元素数完全相同。对于其他容器,存在实际差异。
使用 std::array
的 max_size
成员函数在概念上是愚蠢的。它的存在是为了 std::array
符合 Container
概念(例如命名要求),这允许它与其他容器统一使用,这在模板中很有用。
我认为max_size()指的是数组的容量,而不是数组的实际大小。