1. 数组
数组,就是一组按照一定次序排列的数值,数组中的每一个变量被称为元素
数组的特点:
- 固定大小:数组一旦声明,其大小通常是固定的,不能在运行时动态更改。就好比开设了一个30人的班级,班级大小已经固定,不能再改变班级的规模。
- 相同数据类型: 数组中的所有元素必须具有相同的数据类型,假设这个班都是男生或者都是女生,只能有一种性别存在。
- 连续存储: 数组的元素在内存中是连续存储的,班级里的同学按照顺序就坐,中间没有留空位。
- 下标访问: 数组中的元素通过下标(索引)进行访问,每个人都有一个学号,学号就是自己的座位,这个学号被称为索引,但是数组里的索引是从0开始的,也就是说,第一个元素的索引是0,第二个元素的索引是1,依次类推
C++中声明数组的方式为dataType arrayName[arraySize]
。
dataType
表示数组元素的类型,比如int
、double
、char
等。arrayName
是为数组指定的名称,类似于变量名称。arraySize
是数组的大小,即它可以容纳多少个元素。
C++中使用大括号 {}
初始化数组的元素,也可以逐个赋值。
访问数组中的元素或者修改数组中的元素的值,您可以使用下标操作符 []
,请注意,下标从0开始,直到数组长度的前一位。
2. vector容器
如果不清楚元素的确切个数,请使用vector
vector
(被称为容器),做为C++ 标准库中的一个容器类,表示对象的集合,它可以动态地存储一组元素,所以你可以根据需要轻松地调整 vector
的大小。
如果想要使用vector
, 必须包含头文件vector
#include <vector>
using std::vector;
容器的创建方式为vector<类型> 名称
, 无需指明长度
vector<int> myVector; // 创建一个空vector, 元素是int类型的
vector<int> myVector = {1, 2, 3, 4, 5}; // 创建一个包含整数元素的容器并初始化元素
vector<int> myVector(10); // 创建一个包含10个元素的容器,元素为int类型(值被系统默认初始化为0)
vector<int> myVector(10, -1); // 创建一个包含10个重复元素的容器,每个元素的值都是-1
vector
可以动态调整大小,这种调整是通过vector
内置的方法push_back
动态添加元素来实现的。
push_back()
负责将一个值push
(推送)到vector中的back
(尾端)
使用下标操作符 []
访问 vector
中的元素
int value = myVector[0]; // 获取第一个元素的值,即 1
使用内置的size()
方法来获取容器当前的元素数量
int size = myVector.size(); // 获取vector的大小
在数组中,我们通过for循环
完成了对数组的遍历,vector
遍历的方式是一样的。
for (int i = 0; i < myVector.size(); i++)
{
// 从索引为0开始,遍历到i等于size的时候退出循环,完成整个遍历
cout << myVector[i] << " ";
}
vector
还内置了一些别的方法供我们使用:
myVector.pop_back(); // 删除vector末尾的元素
myVector.clear(); // 清空vector中的所有元素
myVector.empty(); // 判断vector是否不含有任何元素,如果长度为0,则返回真,否则,返回假
3. 总结
法1:数组
#include <iostream>
using namespace std;
int main()
{
int n, i;
int arr[1000];
cin >> n;
// 输入数组元素
for(i = 0; i < n; i++)
{
cin >> arr[i];
}
// 倒序输出
for(i = n-1; i >= 0; i--)
{
cout << arr[i] << " ";
}
cout << endl;
// 隔位输出
for(i = 0;i<n;i+=2)
{
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
法2:vector容器
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n, num,i;
// 注意点1:定义一个整型vector
vector<int> nums;
cin >> n;
// 输入数组元素
while(n--)
{
cin >> num;
// 注意点2:使用push_back方法动态添加元素
nums.push_back(num);
}
// 倒序输出数组元素,每个数之间用空格分隔,
// 注意点3:使用size()表示vector的大小
for(i = nums.size()-1; i >= 0; i--)
{
cout << nums[i] << " ";
}
cout << endl;
//隔位输出数组元素,中间用空格分隔
for(i = 0; i < nums.size(); i += 2)
{
cout << nums[i] << " ";
}
cout << endl;
return 0;
}