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学习笔记

C++ STL 学习记录

记录在LeetCode刷题过程中使用C++ STL库的要点。



一、map 相关

排序

基于key 排序

1、map需要在创建时,指定排序方法,若key为自定义类型,需要重载比较运算符
2、map无法使用sort函数

eg:

struct comLen{
     bool operator(const string &lhs, const string &rhs)
     {return lhs.length()<rhs.length();}
}
map<string,int,comLen> LenLessMap;

基于value排序

迂回战术:map无法使用sort()接口,也就无法重载运算符,指定使用value进行比较。因此,将map转化成vector类型,进行排序。
tips:线性的(如vector,list,deque)容器才能使用sort,关联容器不行

代码eg:

map<string,int> m;
元素插入过程
vector<pair<string,int> > vec(m.begin(),m.end());
sort(vec.begin(),vec.end(),combyValue);

二、string 相关

分隔字符串

1、通过stringstream实现,注意stingstream的使用需要包含sstream头文件,且只能以char类型作为分隔符;

vector<string> split3(const string &str, const char pattern)
{
    vector<string> res;
    stringstream input(str);   //读取str到字符串流中
    string temp;
    //使用getline函数从字符串流中读取,遇到分隔符时停止,和从cin中读取类似
    //注意,getline默认是可以读取空格的
    while(getline(input, temp, pattern))
    {
        res.push_back(temp);
    }
    return res;
}

功能

1、substr(i, j) 返回index从i到j的前一个的子串;
substr(i)返回从i 到尾部的子串;
2、append(i, ‘a’) 字符串末尾添加i 个’a’

3、数值转换

int val = 100;
string str = to_string(val); //s = "100", 将val转为string
int val2 = stoi(str, 0, 10); //val2 = 100, 将str从0开始的位置转为10进制int
// 类似的还有stof, stod...

4、判断大小写

string s = "abCdE";
islower(s[1]); //isupper() 判断小写
isupper(s[1]); // 判断大写
s[3] = toupper(s[1]); //转换为大写
tolower(s[1]); // 转换为小写
isalpha(int c); //判断是不是字母

总结

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-17 15:11:24  更:2021-08-17 15:12:45 
 
开发: 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年5日历 -2024/5/20 1:05:53-

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