【问题标题】:How can I know in C++ how many elements an array contains? [duplicate]我如何在 C++ 中知道一个数组包含多少个元素? [复制]
【发布时间】:2020-03-25 07:16:28
【问题描述】:

例如,我有一个包含 3 个元素的数组

int array [] = {1, 4, 66};

我如何知道array 包含多少元素?

【问题讨论】:

标签: c++ arrays


【解决方案1】:

这样做:

std::size(myarray);

std::size<iterator> 中。


一些消息来源会告诉你使用sizeof(myarray)/sizeof(myarray[0]) 之类的“技巧”。但这很容易出错。数组的名称很容易衰减为指针,这个“技巧”会给出错误的结果。 std::size 要么工作,要么破坏构建。

另外,当您从 C 数组切换到 std::array 时,它仍然可以工作

【讨论】:

  • 万一他们没有c++17 template <typename T, std::size_t N> std::size_t size(const T(&)[N]) { return N; }
  • 是的,就像链接文章中所说的那样;)
【解决方案2】:

您可以使用sizeof(myarray)/sizeof(int)

但是你真的应该开始使用std::array,它和你的数组做同样的事情并且更安全。并带有size() 方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    • 2020-11-14
    • 1970-01-01
    相关资源
    最近更新 更多