【问题标题】:Difference between array<int,5> b; and int b[5]; [duplicate]array<int,5> b; 之间的区别和 int b[5]; [复制]
【发布时间】:2014-03-23 12:03:55
【问题描述】:
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&lt;int,5&gt; b有什么区别;和int b[5];?

【问题讨论】:

标签: c++ arrays


【解决方案1】:

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

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

a = b;

while 结构有一个隐式定义的赋值运算符。

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 };

【讨论】:

    猜你喜欢
    • 2019-12-18
    • 2023-01-24
    • 2014-10-19
    • 2020-04-25
    • 2015-02-21
    • 1970-01-01
    • 2021-11-21
    • 2020-11-17
    • 2013-07-01
    相关资源
    最近更新 更多