练习3.30
含10个元素的数组的最后一个元素的索引是9,不能是10,代码更改如下:
int main() {
constexpr size_t array_size = 10;
int ia[array_size];
for (size_t ix = 0; ix < array_size; ++ix)
{
ia[ix] = ix;
cout << ia[ix] << " ";
}
}

练习3.31
string sa[10]; //10个空串
int ia[10]; //10个初始值为0的整数
int main() {
string sa2[10];//10个空串
int ia2[10]; //10个元素,但含有未定义的值
}
练习3.32
int main() {
int ia[] = { 0,1,2 };
int ib[] = ia;//错误,不允许使用一个数组初始化另一个数组
}
int main() {
vector<int> ia = { 0,1,2 };
vector<int> ib = ia; //正确
}
练习3.33
错误:
int main() {
unsigned scores[11];
unsigned grade;
while (cin >> grade) {
if (grade <= 100)
++scores[grade / 10];
}
for (auto i : scores)
cout << i << " ";
}

正确:
int main() {
unsigned scores[11] = {};
unsigned grade;
while (cin >> grade) {
if (grade <= 100)
++scores[grade / 10];
}
for (auto i : scores)
cout << i << " ";
}

本文通过几个具体的练习案例,介绍了C++中数组和向量的使用方法,包括数组索引的正确使用、不同类型的数组初始化方式以及如何正确地进行计数统计等。同时对比了数组与向量在初始化上的区别。
250

被折叠的 条评论
为什么被折叠?



