前言:
在算法竞赛中,如果要用到例如 队列,栈 等数据结构类型时,不用自己构造,在C++中已将封装好了多种容器,只需引用头文件就可以进行使用,极大的提高了编写效率。
1. vector
#include <iostream>
#include <vector> //对应头文件
using namespace std;
//语法 : vector<类型> arr(长度,[初值])
void print_str(char a[]){
cout << a[0] << endl;
}
int main(){
vector<int> arr; //创建整型数组 arr,如果没有定义长度,则默认长度为0;
vector<int> arr1(10, 0);//创建长度为10的整形数组,初值为0
//类比,我们可以定义不同的类型数组
vector<double> arr3(10, 2);
vector<char> arr4(10, '*');
//二维数组
vector<vector<int>> arr_2(5, vector<int>(5, 0));
//构造初始5行,初始5列的二维数组,初值为0;
//尾插:
arr.push_back(1);
arr.push_back(2);
arr.push_back(3);//此时arr的长度已经变成了3
//尾删
arr.pop_back();
arr.pop_back();//此时arr的长度为1;
//获取数组长度
cout << arr.size() << endl; // size = 1;
//清空数组
arr.clear();
//判断数组是否为空, 返回的是布尔值
cout << arr.empty() << endl; //空值返回1
//改变数组的长度
arr.resize(5, 10);//将arr数组长度改为5,且对新加入的数值初始化为10;
//迭代器遍历
for(auto x : arr){
cout << x << endl;
}
}
1111