C++_vector

向量 vector是基于动态数组的类模板,可以根据需要增长,只能够在尾部快速插入和删除
template < typename T>
class vector{
public:
private: T* myarray;
}
向量定义
#include < vector>
vector<Element_type>objectName; 创建一个空vector;
vector<Element_type>objectName(initCap) 创建一个容量为initCap的vector
vector<Element_type>objectName(initCap,initVal)同上,但每个元素初始化为initVal
vector<Element_type> objectName(firstPtr,lastPtr);创建一个vector,内容从firstPtr(指针)到lastPtr(不含)的内存空间初始化
例:
int n; cin>>n;vectordubVector(n);
int n;double dubValue; cin>>n>>dubValue;vectordubVector(n,dubValue);
double a[]={1.1,2.2,3.3,4.4};vector(a,a+4);//对应第4个

vector操作:
v.capacity() 返回当前存储单元的数量
v.size() 返回当前存储值的个数
v.max_size() 返回最大存储单元个数
v.empty()判断是否为空
v.reserve(n) 增大v使其容量为n
v.push_back(value) 添加value到v的尾部
v.pop_back() 删除v的最后一个元素
v.front() 返回指向v的第一个元素的引用,可以用来修改元素值
v.back() 返回指向v的最后一个元素的引用
v[i] 返回下标为i的元素 不检查是否越界
v.at(i) 返回下标为i的元素 执行越界检查
v1=v2 将v2拷贝给v1
v1.swap(v2) 交换v1和v2的内容
v1==v2 判断是否相等
v1<v2 v1在字典顺序上小于v2返回true

迭代器(指针)
迭代器是一种检查容器内元素并遍历元素的数据类型。C++更趋向于使用迭代器而不是下标操作,
因为标准库为每一种标准容器(如vector)定义了一种迭代器类型,而只用少数容器(如vector)支持下标操作访问容器元素

vector< int>::iterator vecIter=v.begin() 指向第一个元素的迭代器(指针)v.end()指向最后一个元素后一个位置的迭代器

迭代器运算符
++ 当前位置移到下一个位置
- -当前位置前一个位置
* 去引用(取值)
= 赋值 it1=it2 使it1位置和it2一样
== != 比较是否指向同一个元素
+= -=
[] 下标运算符 it[n]返回指向当前位置后第n个元素的引用,注意不是指针,而是指针指的那个值

迭代器函数
v.begin()
v.end()
v.rbegin() 返回指向最后一个元素的逆迭代器
v.rend() 返回指向第一个元素的逆迭代器
v.insert(iter,value) 将value 插入到由iter指定的位置
v.insert(iter,n,value) 将value的n个拷贝插入到v中由iter给定的位置
v.erase(iter) 删除v中由iter指定的元素
v.erase(iter1,iter2)删除v中iter1~iter2处的值
后四个函数会自动移动元素到新的位置并更新v.size()和v.end()

二维vector
const int ROWS=3,COLUMNS=4;
vector<vector< double> > table(ROWS,vector< double>(COLUMNS,0.0)); //创建二维向量
table[0] :表示第0行
table[0][2]: 表示第0行第2列
table.size() 返回行数
table[i].size():返回列数
table.push_back(vector< double>(COLUMNS,0.0));//添加一行
添加列需要用循环 table[row].push_back(value);
注意二维vector并不一定必须是长方形,可以是锯齿形

学生社团系统-学生社团“一站式”运营管理平台-学生社团管理系统-基于SSM的学生社团管理系统-springboot学生社团管理系统.zip-Java学生社团管理系统开发实战-源码 更多学生社团系统: SpringBoot+Vue学生社团“一站式”运营管理平台源码(活动管理+成员考核+经费审批) Java学生社团管理系统开发实战:SSM升级SpringBoot(招新报名+场地预约+数据看板) 基于SpringSecurity的社团管理APP(移动端签到+权限分级+消息推送) 企业级社团数字化平台解决方案(SpringBoot+Redis缓存+Elasticsearch活动搜索) 微信小程序社团服务系统开发(活动直播+社团文化墙+成员互动社区) SpringBoot社团核心源码(多角色支持+工作流引擎+API接口开放) AI赋能社团管理:智能匹配兴趣标签+活动热度预测+成员贡献度分析(附代码) 响应式社团管理平台开发(PC/移动端适配+暗黑模式+无障碍访问) 完整学生社团系统源码下载(SpringBoot3+Vue3+MySQL8+Docker部署) 高校垂直领域社团平台:百团大战系统+社团星级评定+跨校活动联盟 适用对象:本代码学习资料适用于计算机、电子信息工程、数学等专业正在做毕设的学生,需要项目实战练习的学习者,也适用于课程设计、期末大作业。 技术栈:前端是vue,后端是springboot,项目代码都经过严格调试,代码没有任何bug! 核心管理:社团注册、成员管理、权限分级 活动运营:活动发布、报名签到、场地预约 资源服务:经费申请、物资管理、文档共享 数据分析:成员活跃度、活动效果评估、社团影响力排名
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值