IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++ STL -> 正文阅读

[C++知识库]C++ STL

vector:变长数组

定义

头文件:#include<vector>
vector<int> name;
vector<node> name;
vector<int> vi[10];  //一维长度固定的二维数组
vector<vector<int> > vi;   //二维长度都不固定的二维数组

访问

  • 下标访问
  • 迭代器访问
vector<int>::iterator iter;
it=vec.begin();
it=vec.end();
vector<int>::reverse_iterator r_iter
r_iter=vec.rbegin();
r_iter=vec.rend();

常用函数

函数描述
push_back(x)添加元素x
pop_back()移除尾元素
size()长度
clear()清空
insert(iterator,x)在迭代器位置添加元素 x
erase(iterator)删除迭代器处的元素
erase(firstIterator,lastIterator)删除 [ )区间的元素

set:有序不重复

定义 :头文件 #include<set> 类似vector

访问:迭代器访问

常用函数

函数描述
insert(x)添加元素x
find(value)返回值为value的元素的迭代器
erase(iterator)删除迭代器处的元素
erase(value)删除值为value的元素
erase(firstIterator,lastIterator)删除[ )区间的元素
size()长度
clear()清空

string:字符串

定义

头文件`#include<string>`
string str="abcd";

如果要读入或者输出整个字符串,只能用 cincout头文件#include<iostream>)
使用printf输出字符串 printf("%s",str.c_str() ),转换成字符数组输出

访问

  • 下标
  • 迭代器

常用函数

函数描述
+拼接两个string
=、!=、<、>比较字符串
size()长度
insert(pos,string)在指定位置插入字符串
erase(iterator)、erase(first_iterator,last_iterator)删除单个元素或区间元素
clear()清空
substr(pos,len)截取字符串,若len大于剩余长度,则截取到str末尾
find(str)在当前字符串中查找str,返回第一次出现的下标位置,若查找失败返回string::npos
replace(pos,len,str2)从pos位置起,长度为len的字串替换为str2

map:键值对,key有序不重复

map可以是任何基本类型(包括STL)映射到任何基本类型(包括STL)

定义:头文件#include<map> ,声明map<type1,type2> mp;

访问

  • 下标:mp[“string”]、mp[‘a’] …
  • 迭代器map<type1,type2>::iterator it;通过it->first,it->second访问键和值

常用函数

函数描述
find(key)返回键为key的键值对的迭代器
erase(iterator)、erase(key)、erase(first_iterator,last_iterator)删除单个元素或区间元素
size()长度
clear()清空
unorder_map<type1,type2> mp   //声明  #include<unorder_map>  ,不排序map

queue:队列

定义:头文件#include<queue> ,声明queue<type> qu;

函数描述
front()获得队首元素
back()获得队尾元素
push(x)x入队
pop()出队
empty()检测是否为空
size()长度

priority_queue:优先队列

定义:头文件#include<queue>,声明priority_queue<type> qu;

常用函数

函数描述
push(x)x入队
pop()出队
top()获得队首元素,使用前判断是否为空
empty()判断为空
size()长度

优先级设置

  • 基本数据类型
默认越大排前面:priority_queue<int> qu ; priority_queue<int, vector<int> ,less<int> >
小的排前面:priority_queue< int, vector<int> ,greater<int> >
  • 结构体:在结构体内重载<

struct fruit{
string name;
int price;

friend bool operator < (fruit f1 ,  fruit f2){
return f1.price<f2.price;    // 按price排序,<  <不变,价格大的排前面

stack:栈

定义:头文件 #include<stack> , 声明 stack<type> st;

常用方法

函数描述
push(x)x入队
pop()出队
top()获得栈顶元素
empty()判断是否为空
size()长度

algorithm常用函数

函数描述
max(x,y)、min(x,y)、abs(x)最大值,最小值(参数只能两个,可以为浮点数);abs(x),必须为整数;fabs(x) ,x可为浮点数
swap(x,y)交换x和y的值
reverse(t1,t2)将指针或者迭代器在 [t1,t2) 内的元素反转
next_permutation(t1,t2)返回值bool,改变指针或迭代器[t1,t2)内元素的位置,全排列最后一个返回false
fill(t1,t2,val)将数组或者容器迭代器[t1,t2)范围内的值填充为val

lower_bound() 和 upper_bound()

使用条件:有序数组或容器

lower_bound(first,last,val):查找数组或容器 [first,last) 范围内大于等于val元素的位置,数组返回该位置指针,容器返回该位置迭代器

upper_bound(first,last,val)::查找数组或容器 [first,last) 范围内第一个大于val值的元素的位置,数组返回该位置指针,容器返回该位置迭代器

如果没有找到该元素,返回val应该插入的位置的指针或迭代器

sort

对数组指针或容器迭代器 [t1,t2) 的元素排序,sort(a,a+10,cmp),默认小到大,第三个参数是比较函数,非必填

cmp函数

  • 基本数据类型
bool cmp(type a, type b){
return a>b;
}
  • 结构体
bool cmp(node a,node b){
return a.x>b.y;   // 按照x的大小将结构体从大到小排序
}
  • 容器
bool cmp(string a,string b){
return a>b;
}
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-04 15:19:50  更:2022-03-04 15:21:55 
 
开发: 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/24 5:39:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码