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];
?
答案 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 };