当前位置: 首页 > news >正文

宁波网站设计企业缩短链接生成器

宁波网站设计企业,缩短链接生成器,网站推广排名公司,做班级玩网站做哪些方面对STL进行总结,STL是standard template library的简写,是C中的一个标准模板库,用于实现常用的数据结构和算法,它是C程序员经常使用的一个工具箱。STL 的主要目的是提高开发效率和代码质量,使得程序员可以更加便捷地完成…

对STL进行总结,STLstandard template library的简写,是C++中的一个标准模板库,用于实现常用的数据结构和算法,它是C++程序员经常使用的一个工具箱。STL 的主要目的是提高开发效率和代码质量,使得程序员可以更加便捷地完成常见的操作。里面包括:算法(algorithm)、容器(container)、仿函数(functors)、迭代器(iterator)等,这篇文章先说容器

容器

 容器之所以叫容器,可以抽象理解为我们装东西的容器,比如装水的盒子,只不过C++里的容器是用于装数据,STL这个库里面,它提供了很多种容器类型用于存储数据。主要包括vector(动态数组)set(集合)map(映射)stack(栈)queue(队列)priority—queue(优先队列)string(字符串、pair(二元组) 

  • vector:可以动态调整大小的数组,支持快速的随机访问和迭代器访问,并且支持在尾部添加或删除元素。
  • set:有序集合,其中每个元素都是唯一的,支持快速的查找和插入操作。
  • unordered_set:无序集合,其中每个元素都是唯一的,支持快速的查找和插入操作,但元素的顺序是未定义的。
  • map:有序映射,其中每个元素都有一个唯一的键值对,支持快速的查找和插入操作。
  • unordered_map:无序映射,其中每个元素都有一个唯一的键值对,支持快速的查找和插入操作,但元素的顺序是未定义的。
  • deque:双端队列,支持快速的随机访问和迭代器访问,并且支持在头部和尾部添加或删除元素。
  • list:双向链表,只支持迭代器访问,并且支持在任意位置添加或删除元素。

 vector

 它的和数组差不多,区别就是他的长度是动态可变的,存储在堆中,一般可以替换普通数组

#include<vector>   

vector<类型> 数组名(长度,[初值])   //构造

vector<int> arr;         //构造int数组

vector<int> arr(100);        //构造初始长度100的数组

vector<int> arr(100,1);        //构造初始长度100的数组,初值为1

vector<vector<int>  mat(100,vector<int>());        //构造初始100行,不指定列数的二维数组

vector<vector<int>>  mat(100,vector<int>(666,-1));        //构造初始100行,初始列600的二维数组,初始值-1

vector<vector<vetcor<int>>>  mat1(100, vector<vector<int>>(6,vector<int>(4)));        //构造初始100行,初始列6的三维维数组,

 尾接&尾删

  • push_back(元素):在vector尾接一个元素,数组长+1
  • pop_back():删除vector尾部的一个元素,数组长度-1

 改变长度

 数组名.resize()

 arr.resize(100);        //将vector的长度改为100

set 

set 里的元素只出现一次,且元素没有顺序 ,因此适用于对元素去重,维护顺序等

#include<set>

set<类型,比较器> 集合名        //构造

set<int> st;        //存储int集合(从小到大)

set <int,greater<int>> st1;        //存储int集合(从大到小) 

 遍历

使用迭代器进行遍历

#include<bits/stdc++.h>
using namespace std;int main()
{set<int> st;    //构造一个集合st.insert(1);    //插入1st.insert(2);    //插入2st.erase(1);    //删除1st.find(2);    //找到1就返回1//遍历for (set<int>::iterator it = st.begin(); it !=st.end(); ++it){cout << *it <<endl;}return 0;
}

map 

 有序键值对结构,底层原理是黑红树。一个键只可以在映射中出现一次,且没有顺序

健类型:要存储健的数据类型

值类型:要存储的数据类型

比较器:键要比较大小使用的比较器,默认为less<数据类型>,可自定

#include<map>

map<健类型,值类型,比较器> 名字        //构造map

map<int,int> mp;        // int—>int的映射(从小到大)

map<int,int,greater<int>> mp1;        // int—>int的映射(从大到小)

mp[1] =  2;        //增加

mp.erase(1);        //  删除1这个键

mp[1] = 3;        // 改

cout << mp[1] << endl;        //查

mp.count(元素);        //检查元素是否存在

for(map<int,int>::iterator it =mp.begin(); it != mp.end(); ++it)
{ cout << it -> first << ' ' << i-> second << endl;
}//上述用迭代器的方法太长 不好读 一般使用下面基于范围循环的方法for(auto &m:mp)     //&是引用  m 是自定义的 mp是要便利的map的名字
{cout<<m.first << '' << m.second << endl;
}

stack

通过二次封装双端队列(queue),实现先进后出的栈数据结构 

 #include<stack>

stack<数据类型>  名字

 

stack<int> stk;        //构造一个栈

stk.push(1);        //进栈

stk.pop();        //出栈

stk.top();        //取顶栈

queue 

 先进先出

#include<queue>

queue<数据类型> 队名         //构造队列

queue<int> que;        //构造一个叫que的队列

que.push(元素);        //进队

que.pop();        //出队

que.front() ;        //取队首

que.back();        //取队尾

deque  

首尾都可插入和删除的队列为双端队列

双端队列排序一般不用 

priority_queue 

优先队列是在正常队列的基础上加了优先级,保证每次的队首元素都是优先级最大的。

可以实现每次从优先队列中取出的元素都是队列中优先级最大的一个

#include<queue>

priority_queue<数据类型> 名字         //构造一个优先队列

priority_queue<int> q1; // 默认大根堆, 即每次取出的元素是队列中的最大值
priority_queue<int, vector<int>, less<int> > q2; // 大根堆, 每次取出的元素是队列中的最大值,同第一行

priority_queue<int, vector<int>, greater<int> > q3; // 小根堆, 每次取出的元素是队列中的最小值
 

string

存储字符串

string (长度,初值)        //构造函数

string s1;        //构造字符串,为空

string s2 ="abcde";        //构造字符串 并赋值abcd

string s3(10,'6');        //通过构造函数构造为66666666666

cin >> s1;         //输入字符串

cout << s1;        //输出字符串

 s1+="fgj";        //尾接字符串

pair

存储二元组,两个元素的一个组合

#include<utiity>

pair<类型,类型> pr        //构造一个二元组

pari<int, int> p1;         //存储int型的元组

pair<int, long long> p2;         

pair<int, char> pr3={1,'a'};        //赋值 第一个元素是1,第2个元素是a

int  a = pr.first;        //取第一个值

int b = pr.second;        //取第二个值

 

http://www.yayakq.cn/news/223763/

相关文章:

  • 阿克苏网站建设服务网站中文名
  • 网站做图尺寸常用网站建设软件有哪些
  • 亚马逊网网站建设规划报告网页设计培训学费多少钱
  • 青岛 两学一做 网站自学网设计
  • 河源市网站建设开发一个电商网站
  • 网站建设维护属于什么专业河北招标信息网
  • 做网站的北京网站空间500M
  • 给企业做网站 工作厦门网站开发公司哪家好
  • 横山桥网站160mk2成色
  • 网站的特效代码网站开发技术笔记
  • 月刊可以用什么网站做佛山做网站制作
  • 无锡优化网站排名网站建设华为
  • 营销型网站哪家好来个可以做渗透的网站
  • 南京的网站建设高端网站建设公司兴田德润可以不
  • 网站建设需要的技术路线做家乡特产的网站
  • 网站制作公司杭州那个网站做拍手比较好
  • 织梦导航网站模板新手怎么用DW建设一个网站
  • dede网站安装教程个人业务网站创建
  • 国外外贸网站有哪些海外营销网站
  • 在线做c 题的网站wordpress的数据库有多大
  • 可以做兼职翻译的网站闵行网络推广公司
  • 合肥优化营商环境wp建站优化
  • 房地产企业网站建设wordpress 能上传apk吗
  • 信息技术制作网站首页建设网站最重要的是什么意思
  • 织梦手机网站教程视频有了域名 接下来怎么做网站
  • 专业做蛋糕视频网站优化设计英语
  • 腾讯网站网站后台开发费用
  • 网站建设中的html页面下载购物车 信息技术分院网站后台设计课题组
  • 网站开发语言都有什么2017 WordPress 主题
  • 网站推广软件工具怎样制作wordpress手机主题