C++ 数组:虽然数组中的元素较少,但size和max_size返回相同的数字
从下面的代码中我们可以看到,数组中的最大元素与大小相同。我希望C++ 数组:虽然数组中的元素较少,但size和max_size返回相同的数字,c++,arrays,c++11,C++,Arrays,C++11,从下面的代码中我们可以看到,数组中的最大元素与大小相同。我希望size只返回2个元素 #include <array> #include <iostream> enum class x { a = 1, b = 2, c = 3 }; int main() { std::array<x, 3> nums {x::a, x::b}; std::cout << "nums contains " <&
size
只返回2个元素
#include <array>
#include <iostream>
enum class x
{
a = 1,
b = 2,
c = 3
};
int main()
{
std::array<x, 3> nums {x::a, x::b};
std::cout << "nums contains " << nums.size() << " elements.\n";
std::cout << "max nums contains " << nums.max_size() << " elements.\n";
}
为什么大小和最大大小返回相同的值
我期待的大小将返回我的2个元素只
数组不是这样工作的。数组的大小始终等于其容量
如果您想要固定容量的vector
,您可能需要boost::container::static\u vector
。没有这样的标准容器,但是有一个建议
我期待的大小将返回我的2个元素只
数组不是这样工作的。数组的大小始终等于其容量
如果您想要固定容量的
vector
,您可能需要boost::container::static\u vector
。没有这样的标准容器,但是有一个建议。第三个元素是0
。一个数组有固定数量的元素。如果你要一个包含3个元素的数组,你会得到一个包含3个元素的数组。写一个答案并不容易,因为你的误解到底在哪里还不是100%清楚。如果你真的问一个问题,也许会更容易些;)size
返回3,因为固定大小数组有3个元素max_size
返回3,因为固定大小数组具有固定大小的3个元素。第三个元素是0
。数组具有固定数量的元素。如果你要一个包含3个元素的数组,你会得到一个包含3个元素的数组。写一个答案并不容易,因为你的误解到底在哪里还不是100%清楚。如果你真的问一个问题,也许会更容易些;)size
返回3,因为固定大小数组有3个元素max\u size
返回3,因为固定大小数组具有固定大小的3个元素。max\u size
与容量
不同。向量的最大大小源自平台对连续分配的限制。但是对于std::array
以及static_vector
(包括boost和当前针对std提出的)max_size
等于capacity
max_size
不同于capacity
。向量的最大大小源自平台对连续分配的限制。但是对于std::array
以及static\u vector
(boost和当前建议的std)max\u size
等于容量
。
nums contains 3 elements.
max nums contains 3 elements.