std: :array -- size() 和 max_size() 之间的区别

2 c++ stl

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 */
Run Code Online (Sandbox Code Playgroud)

eer*_*ika 9

C++ 中 std::array 的 size() 和 max_size() 函数有什么区别?

后者有前缀max_. 它们之间没有其他实际区别std::array

差异是概念性的。size是容器中当前元素的数量,也是max_size容器可以拥有的元素数量的理论上限。由于 in 中的元素数量std::array是恒定的,因此当前元素数量与可能存在的元素数量完全相同。对于其他容器来说,存在实际差异。

使用 的max_size成员函数std::array在概念上是愚蠢的。它的存在std::array符合Container概念(例如命名需求),这允许它与其他容器统一使用,这在模板中很有用。