STL中vector的用法
程序员文章站
2022-03-22 21:42:16
...
#include <unordered_map>
#include <vector>
#include <iostream>
using namespace std;
/*
vector<int> c;
vector常用方法:
1. c.push_back(elem) 在数组的最后添加一个数据
2. c.pop_back() 去掉数组中最后一个数据
3. c.empty() 判断容器是否为空
4. c.erase(begin, end) 删除[begin, end)区间内的值,c.erase(pos),删除pos位置的数据。这里的begin,end都是迭代器(一种泛化的指针)
5. c.front 返回容器中第一个数据
6. c.insert(pos, elem)在pos位置处插入elem元素
7. c.clear() 移除容器中所有数据
8. c.resize(num) 重新设置容器的大小
9. c.size() 容器中实际元素的个数
10. c.begin() c.end() 分别返回容器第一个元素和最后一个元素的迭代器
需要注意:
vector每次申请内存的时候,都是在内存不够用了,重新申请一块原来内存两倍大的内存空间,再将原来的数据拷贝过来,但是在VS2015中,内存管理好像不是成倍增长的
*/
void Print(vector<int> t)
{
for (int i = 0; i < t.size(); ++i)
{
cout << t[i] << endl;
}
}
int main()
{
vector<int> iVec;
cout << "容器的大小为:" << iVec.size() << endl;
cout << "容器的容量为:" << iVec.capacity() << endl;
cout << "往容器中添加元素" << endl;
for (int i = 0; i < 5; ++i) { iVec.push_back(10-i); }
cout << "添加完成" << endl;
cout << "使用迭代器遍历容器" << endl;
auto iter = iVec.begin();
while (iter != iVec.end())
{
cout << *iter << endl;
iter++;
}
cout << "使用数组的形式遍历容器" << endl;
for (int i = 0; i < iVec.size(); ++i)
{
cout << iVec[i] << endl;
}
cout << "删除末尾元素" << endl;
iVec.pop_back();
Print(iVec);
cout << "判断容器是否为空" << endl;
cout << iVec.empty() << endl;
cout << "删除容器中指定区间的数据, iVec.begin()+3, iVec.end()" << endl;
iVec.erase(iVec.begin()+3, iVec.end());
Print(iVec);
cout << "容器的第三个位置插入20,iVec.begin()+2, 20" << endl;
iVec.insert(iVec.begin()+2, 20);
Print(iVec);
cout << "返回第一个元素" << endl;
cout << iVec.front() << endl;
return 0;
}
运行结果:
容器的大小为:0
容器的容量为:0
往容器中添加元素
添加完成
使用迭代器遍历容器
10
9
8
7
6
使用数组的形式遍历容器
10
9
8
7
6
删除末尾元素
10
9
8
7
判断容器是否为空
0
删除容器中指定区间的数据, iVec.begin()+3, iVec.end()
10
9
8
容器的第三个位置插入20,iVec.begin()+2, 20
10
9
20
8
返回第一个元素
10
上一篇: C++ STL中vector的用法
下一篇: STL中vector的基本用法