stack与vector

stack 栈
先进后出
常用函数
常和string连用

#include <stack>                          //头文件
stack<int>s                                  //声明
s.push()                                       //压入栈顶元素
s.pop()                                        //弹出栈顶元素
s.top()                                         //返回栈顶元素
s.size()                                       //返回元素个数
s.empty()                                   //返回是否为空
s.swap(s1)或swap(s, s1)          //交换两个栈s和s1的全部元素

vector 向量
与stack基本相同

#include <vector>                          //头文件
vector<int> v                               //定义
可以通过=在两个vector之间赋值
vec.insert(vec.begin()+i,a);          //在第i个元素后面插入a;
vec.erase(vec.begin()+2);               //删除第3个元素
vec.erase(vec.begin()+i,vec.end()+j);  //删除区间[i,j-1];区间从0开始
vec.size();                            //向量大小;
vec.clear()                          //清空之后,vec.size()为0
vec.empty();                          //判断是否为空
vec.assign(b.begin(), b.begin()+3);  //b为向量,将b的0~2个元素构成的向量赋给a
vec.assign(4,2);                     //是vec只含4个元素,且每个元素为2
vec.back();                          //返回vec的最后一个元素
vec.front();                        //返回vec的第一个元素
vec.capacity();                       //返回vec在内存中总共可以容纳的元素个数
vec.pop_back();                      //删除a向量的最后一个元素
vec.erase(vec.begin()+1,vec.begin()+3); //删除vec中第1个(从第0个算起)到第2个元素,也就是说删除的元素从vec.begin()+1算起(包括它)一直到vec.begin()+3(不包括它)
vec.push_back(5);                      //在vec的最后一个向量后插入一个元素,其值为5
vec.insert(vec.begin()+1,5);         //在vec的第1个元素的位置插入数值5,
vec.insert(vec.begin()+1,3,5);         //在vec的第1个元素的位置插入3个数,其值都为5
vec.insert(vec.begin()+1,b+3,b+6); //b为数组,在a的第1个元素的位置插入b的第3个元素到第5个元素(不包括b+6),如b为1,2,3,4,5,9,8 ,插入元素后1,4,5,9,2,3,4,5,9,8
向量可以进行== != >= <= >  <
迭代器
vector<int>::iterator i;  //定义正向迭代器
for (i = v.begin(); i != v.end(); ++i)//注意是不等于
 cout << *i << " ";  //*i 就是迭代器i指向的元素
 stack、queue 和 priority_queue 没有迭代器。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值