#include <vector>用法之我见
vector是一种顺序容器,事实上和数组差不多,但它比数组更优越。一般来说数组不能动态拓展,(何为动态拓展,即是说如果你知道你要存的数据的个数,你定义的存储数据的数组大小也就决定了,但是若你事先不知道数据的个数,你只能定义一个比较大的数组,若是数据量不多,这样定义数组时分配的内存就大大的浪费了,而且若是当年发现你的数组已经存储不下你的数据了,怎么办,数组时不能扩展容量的,这时候vector的优势就出来了,随你扩展)因此在程序运行的时候不是浪费内存,就是造成越界。而vector正好弥补了这个缺陷,它的特征是相当于可分配拓展的数组,它的随机访问快,在中间插入和删除慢,但在末端插入和删除快,而且如果你用.at()访问的话,也可以做越界检查。
v.push_back(t) 在数组的最后添加一个值为t的数据
v.size() 当前使用数据的大小
v.pop_back(); // 弹出容器中最后一个元素(容器必须非空)
v.back(); // 返回容器中最后一个元素的引用
下面为括号匹配的代码:http://www.cnblogs.com/panxiaoyu/archive/2012/03/10/acm.html
#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main()
{
int n;
cin>>n;
while(n--)
{
vector<char> vec;
string ch;
vec.push_back(' ');
cin>>ch;
int l='(';
cout<<"l="<<l<<endl;
for(int i=0;i<ch.length();i++)
{
vec.push_back(ch[i]);
if( vec.back()-1 == *(vec.end()-2) || vec.back()-2 == *(vec.end()-2))//检测两端
{
vec.pop_back();
vec.pop_back();
}
}
if(vec.size()==1)
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
}
return 0;
}
下面为具体的vector用法:
1.push_back 在数组的最后添加一个数据
2.pop_back 去掉数组的最后一个数据
3.at 得到编号位置的数据
4.begin 得到数组头的指针
5.end 得到数组的最后一个单元+1的指针
6.front 得到数组头的引用
7.back 得到数组的最后一个单元的引用
8.max_size 得到vector最大可以是多大
9.capacity 当前vector分配的大小
10.size 当前使用数据的大小
11.resize 改变当前使用数据的大小,如果它比当前使用的大,则填充默认值
例:v.resize(2*v.size, 99) 将v的容量翻倍(并把新元素的值初始化为99)
12.reserve 改变当前vecotr所分配空间的大小
13.erase 删除指针指向的数据项
14.clear 清空当前的vector
15.rbegin 将vector反转后的开始指针返回(其实就是原来的end-1)
16.rend 将vector反转构的结束指针返回(其实就是原来的begin-1)
17.empty 判断vector是否为空
18.swap 与另一个vector交换数据
最新文章
- Todo List
- .NET (五)委托第五讲:内置委托Predicate
- Linux一块网卡添加多个IP地址
- 这几天做完简易酒店管理系统,对Sql Server执行计划的浅显了解。
- 通过Small Basic把儿子/女儿带入编程的世界
- [Virtualization][qemu][kvm][virtio] 使用 QEMU/KVM 模拟网卡多队列
- linux grep 命令
- java io系列14之 DataInputStream(数据输入流)的认知、源码和示例
- 当数据库某张表数据发生变化时,更新c#程序中缓存的用法
- 思维导图软件VYM
- 造一个Badge Service(徽章)的轮子
- iOS8之后CoreLocation定位的使用
- angular-utils-pagination 使用案例
- ASP.NET Identity 身份验证和基于角色的授权
- MATLAB——神经网络构造线性层函数linearlayer
- 前端必备HTTP技能之HTTP请求头响应头中常用字段详解(转)
- 效率生产力工具 —— idea 插件
- HDU 2767 Proving Equivalences(至少增加多少条边使得有向图变成强连通图)
- 【BZOJ1449】[JSOI2009]球队收益(网络流,费用流)
- web实践小项目<;一>;:简单日程管理系统(涉及html/css,javascript,python,sql,日期处理)