STL之vector

1、vector   翻译为向量,用“变长数组”更容易理解一些,此外vector还可以用来以邻接表的方式存储图,这对无法使用邻接矩阵的题目(节点数过多),有害怕使用邻接表的情况是十分友好的。

需要添加的头文件  #include<vector>   

定义vector方式  ,这里的typename可以是任何基本类型:Int double char  结构或者是STL容器

vector  <typename>  name;   // vector   <int> a;

特别注意当typename是STL容器时,>>符号中间有一个空格:vector <vector<int> >  name;

二维定义:vector<int> array [arraysize];//特别注意这里的arraysize是固定长度,而array数组的每一个都是一个vector容器;

vector容器元素的访问:1、通过下标访问    或者    2   、通过迭代器访问

1、通过下标访问

跟访问数组一样,下标从0-arraysize-1;   //vi[0].

2、通过迭代器访问(这个跟以往的数组不同,需要特别记忆),迭代器是一个类似于指针的东西,指针就可以自加(++it,it++)

定义是:

vector <int> ::iterator it;//这里的it是一个vector <int> :: iterator 型的变量,得到it迭代器之后就可以通过*it来访问vector中的元素;

vector容器中数据的输入:

vector<int> vi; //声明vi  vector容器 

vi.push_back(i);//把i添加到vi的末尾处;

此外:vi.begin()为取vi的首元素地址,vi.end();取的vi尾元素的下一个地址(注意for循环时不能用it<vi.end()写法,要用it!=vi.end());//美国人的思想习惯一般是左闭右开,所以,vi.end()是到达尾元素的下一个地址

在常用的STL容器中,只有vector和string,才允许使用vi.begin()+2;这种迭代器加上整数的操作;

常用函数介绍:

1)push_back(x);     在vector的后面增加元素x, 如: vi.push_back(1);

2)pop_back();        用于删除vector的尾元素; 如: vi.pop_back();

3)size();                  用于获取vector内部元素的多少; 如: vi.size();

4)clear();                用来清空vevtor中的所有元素;如:vi.clear();

5)insert(it,x);          用来向vector的任意迭代器it处插入一个元素x;如:vi.insert(vi.begin+2,x);

6)erase();              两种用法:1 删除单个元素   2删除一个区间的所有元素

                       1删除单个元素:    vi.erase(vi.begin+3);

                       2删除一个区间的元素:vi.erase(vi.begin+1,vi.begin+4);///删除vi[1]  vi [2]   vi[3]   还是同理左闭右开

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值