源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C++中stack、queue、vector的用法详解

  • 时间:2020-01-09 08:15 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C++中stack、queue、vector的用法详解
[b]一、栈(stack)[/b] 引入头文件
#include<stack>
常用的方法 [list] [*]empty() 堆栈为空则返回真[/*] [*]pop() 移除栈顶元素[/*] [*]push() 在栈顶增加元素[/*] [*]size() 返回栈中元素数目[/*] [*]top() 返回栈顶元素[/*] [/list] 3.实例代码
#include<iostream>
#include<stack>
using namespace std;
int main(){
  //创建栈 s
  stack<int> s;
  //将元素压入栈
  for(int i=0;i<10;i++){
    s.push(i);
  }
//  if(!s.empty()){
//    cout<<"栈s不是空的"<<endl;
//  }
  cout<<"栈s中元素的个数为:"<<s.size()<<endl;
  while(!s.empty()){
    cout<<" "<<s.top();//获取栈顶元素
    s.pop();//弹出栈顶元素
  }
  cout<<endl;
  if(s.empty()){
    cout<<"栈s现在为空"<<endl;
  }
  return 0;
}
运行结果 [img]http://files.jb51.net/file_images/article/201708/2017830110507775.jpg?201773011519[/img] [b]二、队列(queue)[/b] 引入头文件
#include<queue>
常用方法 [list] [*]empty() 判断队列是否为空,返回类型为bool[/*] [*]size() 返回队列中元素的个数[/*] [*]front() 返回队列队首元素[/*] [*]back() 返回队列队尾元素[/*] [*]push(ele) 将元素ele插入到队尾[/*] [*]pop 队首元素出队[/*] [/list] 实例代码
#include<iostream>
#include<queue>
using namespace std;
int main(){
  int ele,num,last;
  queue<int> q;
  for(int i=0;i<10;i++){
    q.push(i);
  }
  if(!q.empty()){
    cout<<"队列不是空的"<<endl;
  }
  num=q.size();
  cout<<"队列q的长度为:"<<num<<endl;
  last=q.back();
  cout<<"队列q最后一个元素:"<<last<<endl;
  for(int j=0;j<q.size();j++){
    ele=q.front();
    cout<<ele<<" ";
    q.pop();
  }
  cout<<endl;
  if(q.empty()){
    cout<<"队列是空的"<<endl;
  }
  return 0;
}
运行结果 [img]http://files.jb51.net/file_images/article/201708/2017830110600641.jpg?201773011611[/img] [b]三、向量(vector)[/b] 引入头文件
#include<vector>
常用方法 [list] [*]c.clear() 移除容器中所有数据。[/*] [*]c.empty() 判断容器是否为空。[/*] [*]c.erase(pos) 删除pos位置的数据[/*] [*]c.erase(beg,end) 删除[beg,end)区间的数据[/*] [*]c.front() 传回第一个数据。[/*] [*]c.insert(pos,elem) 在pos位置插入一个elem拷贝[/*] [*]c.pop_back() 删除最后一个数据。[/*] [*]c.push_back(elem) 在尾部加入一个数据。[/*] [*]c.resize(num) 重新设置该容器的大小[/*] [*]c.size() 回容器中实际数据的个数。[/*] [*]c.begin() 返回指向容器第一个元素的迭代器[/*] [*]c.end() 返回指向容器最后一个元素的迭代器 [/*] [/list] 代码实例
#include<iostream>
#include<vector>
using namespace std;
int main(){
  //向向量v中添加元素
  vector<int> v;
  for(int i=0;i<10;i++){
    v.push_back(i);
  }
  //从向量v中读取数据
  for(int i=0;i<v.size();i++){
    cout<<" "<<v[i];
  }
  cout<<endl;
  //使用迭代器遍历数据 迭代器相当于指针
  cout<<"使用迭代器获取数据"<<endl;
  vector<int>::iterator iter;
  for( iter = v.begin(); iter != v.end(); iter++ )
  {
   cout<<" "<< *iter;
  }
  cout<<endl;
  //删除数据
  for(vector<int>::iterator it=v.begin();it!=v.end();){
    v.erase(it);
  }
  if(v.empty()){
    cout<<"向量v为空"<<endl;
  }
  return 0;
}
运行结果 [img]http://files.jb51.net/file_images/article/201708/2017830110714260.jpg?201773011726[/img] [b]总结[/b] 以上所述是小编给大家介绍的C++中stack、queue、vector的用法详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程素材网网站的支持!
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部