1.初始化:
| vector<类型>标识符 |
| vector<类型>标识符(最大容量) |
| vector<类型>标识符(最大容量,初始所有值) |
| |
| int i[5]={1,2,3,4,5} |
| vector<类型>vi(i,i+2); |
| |
| vector<vector<int>>v; 二维向量 |
2.常用函数
| push_back() |
| |
| pop_back() |
| |
| at() |
| |
| begin() |
| |
| end() |
| |
| find() |
| |
| front() |
| |
| back() |
| |
| max_size() |
| |
| capacity() |
| |
| size() |
| |
| a.reserve(100); |
| |
| a.resize(10); |
| |
| a.resize(10,2); |
| |
| erase() |
| |
| clear() |
| |
| rbegin() |
| |
| rend() |
| |
| empty() |
| |
| swap() |
| a.swap(b); |
| |
| reverse(obj.begin(),obj.end());反向迭代器,实现元素对调 |
3.find用法
| find(数组的头地址, 数组的尾地址, 要找的数) |
| |
| find(nums.begin(), nums.end(), target) |
| |
| |
| |
实例
| #include <iostream> |
| #include <vector> |
| #include <algorithm> |
| using namespace std; |
| using std::vector; |
| using std::cout; |
| using std::endl; |
| int main() { |
| vector<int> nums = {2,7,8,8,9}; |
| int target = 8; |
| vector<int>::iterator loc = find(nums.begin(), nums.end(), target); |
| |
| if (loc == nums.end()) { |
| cout << "数组中没有" << target << endl; |
| } |
| else { |
| cout << "数组中有" << target << endl; |
| cout << "并且, 它的第一次出现的位置为:" << loc - nums.begin() << endl; |
| } |
| } |
4.访问
| #include <bits/stdc++.h> |
| using namespace std; |
| int main() |
| { |
| |
| vector<int>obj; |
| for(int i=0;i<10;i++) |
| { |
| obj.push_back(i); |
| } |
| |
| |
| cout<<"直接利用数组:"; |
| for(int i=0;i<10;i++) |
| { |
| cout<<obj[i]<<" "; |
| } |
| cout<<endl; |
| |
| |
| |
| cout<<"利用迭代器:" ; |
| vector<int>::iterator it; |
| |
| for(it=obj.begin();it!=obj.end();it++) |
| { |
| cout<<*it<<" "; |
| } |
| |
| return 0; |
| } |
5.insert插入
| insert() |
| |
| |
| vector<int> vA; |
| vector<int>::iterator it; |
| |
| |
| |
| |
| it = vA.insert(vA.begin(),2); |
| |
| |
| |
| |
| |
| it = vA.insert(vA.end(),2,3); |
| |
| |
| |
| |
| vector<int> vB(3,6); |
| it = vA.insert(vA.end(),vB.begin(),vB.end()); |
| |
| |
| |
| |
| |
| |
| pop_back() 从vector末尾删除一个元素 |
| |
| erase() 从vector任意位置删除一个元素,指定位置或者指定区间进行删除,第一个参数都是个迭代器。返回值是指向删除后的下一个元素的迭代器 |
| |
| clear() 清除vector中所有元素, size=0, 不会改变原有capacity |
6.排序
| sort(v.begin(), v.end(),less<int>()); |
| sort(v.begin(), v.end(),greater<int>()); |
7.删除元素
| for(auto iter=vec.begin();iter!=vec.end(); ) { |
| if( *iter == 3) iter = veci.erase(iter); |
| else iter ++ ; |
| } |
-
函数:
是个stl的通用算法 std::remove(first,last,val)
移除 范围内等于 的元素在 里面用就类似于 iter=std::remove(vec.begin(), vec.end(), val)
但这个函数只是把 移到 的末尾,并不真正删除,真正删除还是要调用一次erase函数
| veci.erase(remove(vec.begin(),vec.end(),3),vec.end()); |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理