虽然在c++中拥有vector这一神器,使得很多数组问题都可以转化为向量去解决,然而,一些问题还是需要依赖传统c语言中的数组。
这里的数组不止包括存数的,还有存储字符串的。
1、数组声明
int array1[5] = {1,2,3,4,5};
double array2[5] = {1.2,2.1,3.3,4.3,5.0};
string array3[5] = {"asd", "asdfa", "rwqeff", "qwfv", "qoiepjooem"};
注意声明的过程中,[]中必须是常量,不能是变量,这一点可能有时候会很蛋疼。
2、数组的遍历
1)for auto: 循环
for (auto eve : array) {
cout << eve << endl;
}
无论array是什么类型的都可以遍历。
2)for() 循环
传统的for()循环,需要数组的大小尺寸作为访问的上界,推荐使用sizeof()函数。
for (int i = 0; i < sizeof(array2) / sizeof(1.2); i++)
cout << array2[i] << endl;
但是需要慎用,尤其是string数组,但是string数组依然可以用这种方法进行遍历。
for (int i = 0; i <sizeof(array3)/sizeof(string("temp")) ; i++)
{
cout << array3[i] << endl;
}
需要注意的是此处的分母sizeof(string(“temp”))里必须要加string(),如果只是写"temp"是不行的。
3)注意
数组的访问无法进行负数切片,即array[-1]。