数组<int,5> b之间的差异;和int b [5]; </int,5>

时间:2014-03-23 12:03:55

标签: c++ arrays

array<int, 5> b = {12,45,12,4};
int B[5] = { 12, 45, 12, 4 };
for (auto item : b)
{
    cout << item << endl;  // 12,45,12,4, 0
}
cout << endl;
for (auto item : B)
{
    cout << item << endl;  // 12,45,12,4, 0
}

array<int,5> b之间有什么区别;和int b[5];

1 个答案:

答案 0 :(得分:3)

Template class std :;数组被定义为结构。它是一个聚合,有一些方法,例如size()。 不同之处在于,例如数组没有赋值运算符。你可能不会写

int b[5] = { 12, 45, 12, 4 };
int a[5];

a = b;

虽然结构具有隐式定义的赋值运算符。

std::array<int, 5> b = { 12, 45, 12, 4 };
std::array<int, 5> a;

a = b;

同样使用数组,您可能无法使用初始化列表来分配数组。例如,编译器将为以下语句发出错误

int b[5];
b = { 12, 45, 12, 4, 0 };

但是,您可以使用std::array进行这些操作,例如

std::array<int, 5> b;
b = { 12, 45, 12, 4, 0 };