gpt4 book ai didi

c++ - std::array:size和max_size返回相同的数字(如果array中的元素较少)

转载 作者:行者123 更新时间:2023-12-02 10:34:44 26 4
gpt4 key购买 nike

从下面的代码中我们可以看到,数组中的最大元素与size相同。我期望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";
}

结果:
nums contains 3 elements.
max nums contains 3 elements.

为什么size和max_size返回相同的值?

最佳答案

I was expecting the size will return me the 2 elements only



数组不能以这种方式工作。数组的大小始终等于其容量。

如果要使用固定容量的 vector,则可能需要 boost::container::static_vector。没有这样的标准容器,但是有一个建议 p0843

关于c++ - std::array:size和max_size返回相同的数字(如果array中的元素较少),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60846860/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com