c++中stack、queue和vector的基本操作示例

 更新时间:2017年08月30日 11:16:05   作者:Jason杰  
这篇文章主要给大家介绍了关于c++中stack、queue和vector基本操作的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。

前言

这几天在接触搜索的题目,用bfs时基本都用到队列,就顺便学习了数据结构的栈、队列。本文将详细给大家介绍关于c++中stack、queue和vector的基本操作,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

stack 的基本操作有:

入栈,如例:s.push(x);

出栈,如例:s.pop();注意,出栈操作只是删除栈顶元素,并不返回该元素。

访问栈顶,如例:s.top()

判断栈空,如例:s.empty() ,当栈空时,返回true。

访问栈中的元素个数,如例:s.size()

queue 的基本操作有:

入队,如例:q.push(x); 将x 接到队列的末端。

出队,如例:q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。

访问队首元素,如例:q.front() , 即最早被压入队列的元素。

访问队尾元素,如例:q.back() ,即最后被压入队列的元素。

判断队列空,如例:q.empty() ,当队列空时,返回true。

访问队列中的元素个数,如例:q.size()

vector的基本操作有:

尾部插入数字:vec.push_back(a);

使用下标访问元素,cout<<vec[0]<<endl;记住下标是从0开始的。

使用迭代器访问元素.

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

插入元素: vec.insert(vec.begin()+i,a);在第i+1个元素前面插入a;

删除元素: vec.erase(vec.begin()+2);删除第3个元素

vec.erase(vec.begin()+i,vec.end()+j);删除区间[i,j-1];区间从0开始

向量大小:vec.size();

清空:vec.clear();

注意:

使用reverse将元素翻转:需要头文件#include<algorithm>

reverse(vec.begin(),vec.end());将元素翻转(在vector中,如果一个函数中需要两个迭代器,一般后一个都不包含.)

使用sort排序:需要头文件#include<algorithm>

sort(vec.begin(),vec.end()); (默认是按升序排列,即从小到大).

可以通过重写排序比较函数按照降序比较,如下:

定义排序比较函数:

bool Comp(const int &a,const int &b)
{
return a>b;
}

调用时:sort(vec.begin(),vec.end(),Comp) ,这样就降序排序。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • VS2019创建C++工程的的实现步骤

    VS2019创建C++工程的的实现步骤

    本文主要介绍了VS2019创建C++工程步骤,包含新建项目、编辑文件、配置源文件目录、编译链接、输出文件、设置断点调试,具有一定的参考价值,感兴趣的可以了解一下
    2024-12-12
  • C++ 基类指针和子类指针相互赋值的实现方法

    C++ 基类指针和子类指针相互赋值的实现方法

    下面小编就为大家带来一篇C++ 基类指针和子类指针相互赋值的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • C语言三子棋小游戏实现全程

    C语言三子棋小游戏实现全程

    三子棋是一种民间传统游戏,又叫九宫棋、圈圈叉叉、一条龙、井字棋等。将正方形对角线连起来,相对两边依次摆上三个双方棋子,只要将自己的三个棋子走成一条线,对方就算输了,想用c语言做出这个游戏,事实上也是比较简单的,下面通过c语言进行对五子棋的分析
    2022-05-05
  • C语言实现简易版扫雷游戏

    C语言实现简易版扫雷游戏

    这篇文章主要为大家详细介绍了C语言实现简易版扫雷游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05
  • QT委托代理机制之Model View Delegate使用方法详解

    QT委托代理机制之Model View Delegate使用方法详解

    这篇文章主要介绍了QT委托代理机制之Model View Delegate的使用方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • 浅析C++中strlen函数的使用与模拟实现strlen的方法

    浅析C++中strlen函数的使用与模拟实现strlen的方法

    这篇文章主要介绍了strlen函数的使用与模拟实现strlen的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Vscode Remote Development远程开发调试的实现思路

    Vscode Remote Development远程开发调试的实现思路

    这篇文章主要介绍了Vscode Remote Development远程开发调试的相关资料,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • C++日期类计算器的模拟实现举例详解

    C++日期类计算器的模拟实现举例详解

    两个日期之间相隔天数的计算网上有许多的软件,这里主要介绍如何使用C/C++语言来完成这样的功能,下面这篇文章主要给大家介绍了关于C++日期类计算器的模拟实现,需要的朋友可以参考下
    2023-04-04
  • C语言中杨氏矩阵与杨辉三角的实现方法

    C语言中杨氏矩阵与杨辉三角的实现方法

    这篇文章主要给大家介绍了关于C语言中杨氏矩阵与杨辉三角的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • C++ 单例模式的几种实现方式研究

    C++ 单例模式的几种实现方式研究

    单例模式,可以说设计模式中最常应用的一种模式了,据说也是面试官最喜欢的题目。但是如果没有学过设计模式的人,可能不会想到要去应用单例模式,面对单例模式适用的情况
    2019-01-01

最新评论