c++ vector(不定长数组,向量)

下面就以邻接表为例展开介绍。

struct edge{//定义边
	int from,to,value;
}
const int maxn = 1e5+5;
//声明:
vector<edge> map[maxn];//一维向量相当于二维数组,便于理解。
在这里,如果我们使用二维数组存邻接表,需要开销一个1e10的空间,如果图中实际边数只有1e6,用数组无疑会造成极大浪费。

1.3.1 //初始化:
for(int i=0;i<maxn;i++)
{
	map[i].clear();
	//clear函数能清空向量,不是变成0,是清空。
}

下面还是用vector<int> a作为样例
a:{123456789}

1.3.2 //求向量中元素个数
int n = a.size();//此时n等于9

1.3.3 //取向量首个元素的迭代器
vector<int>::iterator it = a.begin();
注意这里得到的是迭代器,如果要直接得到值:

1.3.4 //取向量首个元素值
int value = a.front();//此时value等于1

1.3.5 //和begin对应的是end
vector<int>::iterator it = a.end();
注意,这里的it指向向量a末尾的下一个位置,注意是下一个位置,下一个位置。

1.3.6 //和front对应的是back,取向量尾部的元素值
int value = a.back();//此时value等于9

1.3.7 //直接下标访问(这个地方和数组很像)
int value0 = a[0];//下标从0开始的,所以下标是不超过a.size()-1的
int value1 = a[1];

1.3.8 //往尾部添加一个元素(重要,重要,重要)
由于我们不知道再添加元素是放在哪里,所以搞了个push_back函数,往尾部添加一个元素。
a.push_back(value);
//若value为1,则 a:{1,2,3,4,5,6,7,8,9,1}

1.3.9 //与之对应,我们还有pop_back(),用于删除尾部第一个元素。
a.pop_back();//pop后,序列为 a:{1,2,3,4,5,6,7,8}

1.3.10 //前面提到了reverse函数,翻转向量。
a.reverse(a.begin() , a.end());
//翻转后的序列 a:{9,8,7,6,5,4,3,2,1}

1.3.11 //判断向量是否为空
bool isempty = a.empty();
向量为空 isempty等于true,否则等于false

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值