【发布时间】:2013-02-12 11:46:18
【问题描述】:
为什么 C++ 中的数组在 C++11 (std::array) 之前没有成员函数 size() ?这背后的原因是什么?诸如“如何获取数组的大小?”之类的问题相当频繁。
版本 由于普通数组是从 C 继承的,它没有这样的功能的原因是什么?因为我们可以检查数组中的数据类型。
【问题讨论】:
-
原因是
std::array直到 C++11 才成为 C++ 的一部分。std::tr1::array有一个size()成员函数。 -
原始数组没有成员,它们不是类。数组是“原始”类型(ish)。在 C++11 中,唯一改变的是标准库中添加了一个新的
std::array类,C++03 多年来一直有一个tr1::array类。 -
数组和
std::array's 是有区别的。您似乎将两者混为一谈,这令人困惑。 C++ 数组没有并且仍然没有size()成员函数。 `std::array's(不是语言数组,而是库数组)可以。