C++ STL常用函数介绍之vector(含例题PAT A1047和详细注释)

vector(长度根据需要而自动改变的数组)*

优势 1 普通数组有时会超内存,这样使用vector会方便许多(如果习惯用 const int maxn 大多数题也都行)

优势 2 vector可以用来以邻接表的方式存储图,这对不喜欢使用指针来实现邻接表也无法使用邻接矩阵的读者很有优势.

优势3 有的时候输出数据不确定,为了最后一个输出数据后面无空格,可以先用vector记录所有要输出的数据,最后一次输出(push_back() 和 pop_back()

vector定义
vector<typenama(int/double/char/node/student(struct student> name
上面的定义其实相当于一维数组 name[SIZE] 不过长度可以根据需要而变化
所以二维数组定义 vector v[100]
头文件 #include

begin() 与 end()
1 v[i]与v.begin() + i 等价
2 但是在STL中 只有容器vector 和容器 string 才允许使用v.begin() + 3这种迭代器上加整数的写法
3 begin()取v的首元素地址 end() 取v的尾元素地址的下一个

vector常用函数
1 push_back(x) 作用 在vector后面添加一个元素x
2 pop_back() 作用 用以删除vector尾元素
3 size() 作用 获得vector元素个数*
4 clear() 作用 清空vector中的所有元素
5 insert(it, x) * 作用* 在vector的任意迭代器it处插入一个元素x
6 erase(it) * 作用* 删除单个元素
7 erase(first, last) * 作用* 删除【first, last)内的所有元素
8 (5)使用迭代器访问元素.

vector<int>::iterator it;
for(it=vec.begin();it!=vec.end();it++)
    cout<<*it<<endl;

1047 Student List for Course (25分)
Zhejiang University has 40,000 students and provides 2,500 courses. Now given the registered course list of each student, you are supposed to output the student name lists of all the

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值