参考资料:https://www.runoob.com/cplusplus/cpp-stl-tutorial.html
1.vector容器介绍
vector是一个能够存放 任意类型 的动态数组;
vector 有两个参数,一个是size 表示当前vector容器内存储的元素个数,一个是 capability 表示当前 vector 容器在内存中申请的这片区域所能容纳的元素个数;
size 是当前 vector 容器真实占用的大小,也就是容器当前拥有多少个容器。
capacity 是指在发生 realloc 前能允许的最大元素数,即预分配的内存空间。
size 和 capability 这两个参数对应的函数是 resize() 、reserve();
使用resize() 容器内的对象内存空间是真正存在的。
使用 reserve() 仅仅只是修改了 capacity 的值,容器内的对象并没有真实的内存空间(空间是"野"的)。
此时切记使用 [] 操作符访问容器内的对象,很可能出现数组越界的问题;
用法:
vectot<int> vec;
vector<string> vec1;
2.vector 头文件:#include <vector>
vector 容器方法:
1.vector.clear()
函数功能: 把 size 设置为0,capability 不变;
2.vector.push_back()
函数功能:添加元素,在向量的末尾插入值,如果有必要会扩展向量的大小;
3.vector.begin();
函数功能:返回一个指向向量开头的迭代器;
4.vector.end()
函数功能:返回一个指向向量结尾的迭代器;
vector 迭代器:
vector<int>::iterator v;
//注释:这样v就成为了 vector 的迭代器,可以利用迭代器访问 vector 的元素;
v = vec.begin();
while( v != vec.end())
{
cout << "value of v = " << *v << endl;
v++;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理