栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

stl笔记

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

stl笔记

 

目录

 ###杂

        ##万能头文件

        ##加快cin和cout速度(关闭同步流)

        ##从头读到尾

 ###容器

         ##vector向量容器

         ##set集合

                #unordered_set(无序set)

                 #multiset(不会去重的set)

         ##map映射

                 #unordered_map

        ##stack栈

        ##queue队列

                #优先队列

         ##string字符串


 ###杂

        ##万能头文件
#include

        ##加快cin和cout速度(关闭同步流)
ios::sync_with_stdio(0);
cin.tie(0);
cour.tie(0);

        ##从头读到尾
while(cin<

 ###容器

         ##vector向量容器

                特点:类似一个无限增长的数组

                定义:<>放类型

#include
vector w;

                 操作:

//清空a中的元素
a.clear();

//判断a是否为空,空则返回true,非空则返回false
a.empty();

//删除a向量的最后一个元素
a.pop_back();

//在a的最后一个向量后插入一个元素,其值为5
a.push_back(5);

//插入元素
a.insert(位置,数据);

//删除元素
a.erase(位置,位置);

//可用swap函数交换两个向量的所有值
a.swap(b);

//可用sort对vector进行排序
sort(a.begin(),a.end());//从头到尾排序



 

         ##set集合

                特点:有序性,唯一性

                定义:

#include
set s;

                操作:

//插入元素
s.insert(x);//也可以向某位置插入

//访问end或begin(赋值可用省去指针)
*s.end()//end和begin只是插入顺序????

//清空
s.clear();

//判空
s.empty();

//删除
s.erase()//可以是删除单独数字,也可以位置到位置

//返回第一个大于等于key_value的定位器
lower_bound(key_value);

//返回最后一个大于等于key_value的定位器
upper_bound(key_value);

                #unordered_set(无序set)

                        特点:与set类型但无序

                 #multiset(不会去重的set)

                        特点:与set类似但是不去重

                        应用:贪心

         ##map映射

                特点:自提供key—value

                定义:

#include
map ma;

                 操作:

//插入元素
ma[123]="lll";//以数组形式插入
ma.insert(pair)(123,"lll")//使用insert函数,但当map中有该关键字时不能使用

//清空和删除
erase,clear;

//通过键值访问
ma.at();//也可类似数组访问

//其他类比set

                 #unordered_map

                        特点:无序,查找单一值效率高

 

        ##stack栈

                特点:只有一个口。(即先入后出)(最上面叫top)

                定义:尖括号里放入栈中类型

stack stack;

                 操作

stack sta;
//push:推入栈中
cin>>x;
sta.push(x);

//top:获取栈顶元素
sta.top();

//pop:移除栈顶元素
sta.pop();

//empty:判断栈是否为空,空返回true
sta.empty();

 

        ##queue队列

                特点:先进先出(出口叫front)

                定义:同栈

queue q;

                操作

//同栈几乎相同

//push:推入
q.push(x);

//front:访问顶部
q.front();

//pop:弹出front处元素
q.pop();

//empty:判断是否为空
q.empty();

                应用:BFS图的遍历

                #优先队列

                特点:首个元素为(top)

                          默认优先级为由大到小(greater)(由小到大less)

                定义:

//默认排列
priority_queue pq;

//由小到大排列
priority_queue,less> pq;

                应用:1.优化最短路算法;

                           2.贪心题;

         ##string字符串

               内部常用函数:

                        1.size()/length() 返回字符串长度                         2.empty() 是否为空                         3.clear() 清空                         4.substr() 起始下标,(子串长度 )) 返回子串                         5.c_str() 返回字符串所在字符数组的起始地址

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/511046.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号