| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 浅整理一下STL(顺序式容器)vector、stack、queue、priority_queue、list -> 正文阅读 |
|
[数据结构与算法]浅整理一下STL(顺序式容器)vector、stack、queue、priority_queue、list |
顺序式容器: 关于vector的简单用法:头文件:<vector> 1.vector动态数组,从末尾能快速插入与删除,直接访问任何元素。 2.vector能用来存放任何类型的对象: ??Int:vector<int>a;//默认初始值,a为空 ????? vector<int>b(a);//用a定义b ????? vector<int>a(100);//有100个值为0的元素 ????? vector<int>a(100,6);// 有100个值为6的元素 ??String:vector<string>a(100,”hello”);//100个值为hello的元素 ???????? vector<string>b(a.begin,a.end);//b是a的复制 ??Struct:struct point{int x;int y;}; ?vector<struct>a;//用a来存坐标 3.vector的常用操作: 赋值:a.push_back(100);//在尾部添加元素100 ????? a.insert(a.end(),10,5);//在尾部插入10个值为5的元素 元素个数:int size=a.size(); 删除:a.pop_back();//删除末尾元素 ? ????a.erase(a.begin()+2);//删除第三个元素 ????? a.erase(a.begin()+i,a.begin()+j);//删除区间[i,j-1]的元素 打印:cout<<a[0]<<endl; 排序:sort(a.begin(),a.end());//默认从小到大 清空:a.clear(); a.back();//返回末尾元素 4.例题: 代码:
关于stack的用法:头文件<stack> 1.stack特点:先进后出 2.stack有关操作: ??Stack<Type>s; //定义栈,Type为数据类型,,可以为int、float、char ??s.push(i);//把i放到栈顶 ??s.top();//返回栈顶元素,但不删除 ??s.pop();//删除栈顶元素,但不返回 ??????? //出栈的时候有两个操作:top()获得栈顶元素,再pop()删除栈顶元素 ??s.size();//返回栈中元素个数 ??s.empty();//检查栈是否为空,空返回true,否则返回false 3.例题: 输入:”olleh !dlrow”?? 输出:“hello world!” 代码:
关于queue的用法:头文件<queue> 1.队列的特点:先进先出 2.队列的基本操作: queue<type>q;//定义队列,type为类型int、char、float q.push(item);//把item放到队尾中 q.front();//返回队首元素,但不删除 q.pop();//删除队首元素,但不返回 q.back();//返回队尾元素 q.size();//返回元素个数 q.empty();//检查队列是否为空 3.例题: 输入:1 abcd输出:abcd 代码:
关于优先队列的用法:头文件<queue> 1.优先队列的基本操作: priority_queue<type>q;//type为类型 q.top();//返回优先队列的队首元素,但不删除 q.pop();//删除优先队列的队首元素,但不返回 q.push(i);//将i插入优先队列的队尾 2.int类型的默认优先为:从大到小 如图: 3.struct类型: 例题:医院有三个医生,医生根据病人的病情和看病时间看病,病人权值1~10,10病最重, 权值大的先看病,在权值相同的时候,谁先来给谁看。 输入:7???????????????????? 输出: In 1 1??????????????????????? 2 In 1 2??????????????????????? empty Out 1??????????????????????? 3 Out 2??????????????????????? 1 In 2 1 Out 2 Out 1 代码:
关于list的用法:1.链表与队列的区别: 队列插入删除操作少,一般只在队首或者队尾插入或删除,随机访问较多。 链表插入删除操作多,随机访问少 2.例题: 输入:2??????????????????????? 输出: 20?????????????????? ???????????????1 7 19 40????????????????????????????????? 1 19 37 代码:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 15:44:31- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |