目录
1.deque容器基本概念:(1)功能:双端数组,可以对头端进行插入删除操作
一.vector容器
1.vector基本概念:
vector与数组十分相似,也称为单端数组,vector与数组不同的是它可以动态扩展。
动态扩展:寻找更大的空间,将原数据拷贝新空间,释放原空间。
2.vector构造函数:
void fpx01() {
vector<int>v1;//默认构造(无参构造)
for (int i = 0; i < 10; i++) {
v1.push_back(i);
}
printvector(v1);
vector<int>v2(v1.begin(), v1.end());//将v1从begin到end复制到v2
printvector(v2);
vector<int>v3(10, 100);//将十个100给v3初始化
printvector(v3);
vector<int>v4(v3);//拷贝构造
printvector(v4);
}
3.vector赋值操作:
void fpx02() {//赋值操作
vector<int>v1;
for (int i = 0; i < 10; i++) {
v1.push_back(i);
}
printvector(v1);
vector<int>v2;
v2 = v1;
printvector(v2);
vector<int>v3;
v3.assign(v1.begin(), v1.end());
printvector(v3);
vector<int>v4;
v4.assign(10, 100);
printvector(v4);
}
4.vector容量和大小:
5.vector插入和删除:
void tt02() {
vector<int>v1;
v1.push_back(1);//尾插法
v1.push_back(2);
v1.push_back(3);
v1.push_back(4);
v1.push_back(5);
printfvector(v1);
//尾删法
v1.pop_back();
printfvector(v1);
//插入,第一个参数是迭代器
v1.insert(v1.begin(), 10);
printfvector(v1);
//插入n个数据
v1.insert(v1.begin(), 2, 10);
printfvector(v1);
//删除
v1.erase(v1.begin());
printfvector(v1);
//区间删除-清空
//v1.erase(v1.begin(), v1.end());
//printfvector(v1);
//清空
v1.clear();
printfvector(v1);
}
6.vector数据存取:
7.vector预留空间:
二.deque容器
1.deque容器基本概念:
(1)功能:双端数组,可以对头端进行插入删除操作
(2)deque与vector的区别:
- deque对于头部的插入效率低,数据量越大,效率越低
- deque相对而言,对头部的插入删除速度比vector快
- vector访问元素时的速度会比deque快
2.deque容器的构造函数:
3.deque的赋值操作:
void lgd02() {//赋值操作
deque<int>d1;
for (int i = 0; i < 10; i++)
{
d1.push_back(i);
}
printdeque(d1);
deque<int>d2;
d2 = d1;
printdeque(d2);
deque<int>d3;
d3.assign(d1.begin(), d1.end());
printdeque(d3);
deque<int>d4;
d4.assign(10, 10);
printdeque(d4);
}
4.deque大小操作:
5.deque插入和删除
6.deque数据存取:
7.deque排序操作:
默认为升序,使用时必须包含algorithm头文件。