What is the difference between size() and max_size() functions for std: :array in C ?
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 */
CodePudding user response:
What is the difference between size() and max_size() functions for std: :array in C ?
The latter has prefix max_
. There is no other practical difference between them for std::array.
The difference is conceptual. size
is the current number of elements in the container, and max_size
is a theoretical upper bound to how many elements the container could have. Since the number of elements in std::array
is constant, the current number of elements is exactly the same as the number of elements there can ever be. For other containers, there is a practical difference.
Using the max_size
member function of std::array
is conceptually silly. It exists so that std::array
conforms to the Container
concept (e.g. named requirement) which allows it to be used uniformly with other containers which is useful within templates.
CodePudding user response:
i think max_size() refers to the capacity of the array and not the actual size of the array.