STL — vector
基本摘抄自百度百科
其中,7 的 清空向量转载自 https://blog.csdn.net/a272846945/article/details/51182144
1,使用条件
头文件 <vector> 和 using namespace std; (因为他是属于 C++ 的)
2, 定义:简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。(度娘)
3,使用 :
vector <int> c; // 长度未知,未初始化
vector <int> c(10); // 长度为 10 ,未初始化
vector <int> c(10,1); // 长度为 10 ,全部初始化为 1
vector <char> a{ 'B', 'C' }; // 定义时初始化
vector<vector<int>> a = { { 1,2 },{ 3, 4 } }; // 定义时初始化
4,函数
c.assign(beg,end):将[beg; end)区间中的数据赋值给c。
c.assign(n,elem):将n个elem的拷贝赋值给c。
c.empty(): 空返回true,否则返回false
c.clear(): 清空元素,但不回收空间
c.front():传回第一个数据
c.back():传回最后一个数据,不检查这个数据是否存在。
c.begin():传回迭代器中的第一个数据地址。
c.end(): 指向迭代器中末端元素的下一个,指向一个不存在元素。
insert(c.begin()+2,a) 在第三给元素前面插入 a
erase(c.begin(),c.begin()+3); 删除一个区间,从第一个元素到第二个元素,不包括第三个元素
find(c.begin(),c.end(),w); 从c.begin()(含它)到c.end()(不含它)的元素中查找 w,若存在w,则返回其在 vector 中的位置,若不存在,则返回 c.end() 的地址
sort(c.begin(),c.end()); 从c.begin()(含它)到c.end()(不含它)的元素进行从小到大排列 需要头文件#include<algorithm>? 这个是快排的函数
vector添加数据的缺省方法是push_back(), 而不能直接用下标赋值。因为他是动态分配内存的,使用下标只能用来获取已经存在的元素 ,它并不能分配内存给新加进来的数据
push_back(): 函数表示将数据添加到 vector 的尾部,并按需要来分配内存。
pop_back(); 函数表示删除 vector 的最后一个数据
5,打印
根据其数据类型,与相同类型的数组操作基本一样。
6,缺点
时间:运行速度与数组相比较慢
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<vector> #include<algorithm> using namespace std; int main( void ) { vector< int >a; //本质为数组 for ( int i = 20 - 1; i >= 0; i--) a.push_back(i); //插入尾部 printf ( "%d\n" , a[5]); //查询第六个元素 for ( int i = 0; i < a.size(); i++) //遍历 printf ( "%d " , a[i]); puts ( "" ); puts ( "sort:" ); sort(a.begin(), a.end()); // 排序 a.erase(a.begin() + 4); // 删除第五个元素 for ( int i = 0; i < a.size(); i++) printf ( "%d " , a[i]); puts ( "" ); system ( "pause" ); return 0; } |
=========== ======== ======= ====== ====== ===== ==== === == =
子曰:朝闻道,夕死可矣
—— 论语·里仁
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术