STL常见用法
1、选择C++刷算法的理由
- 1.C++速度快(C不是更快么,java太慢了)
- 2.C++有STL(什么是STL)——使用很方便的类库
- 3.如何使用STL进行高效刷算法
- 4.好处:刷算法,学习成本极低
- 5.如何从C到C++(仅基础语法到刷算法程度)
2、输入输出
C++保留了C的scanf和printf,增加了额外的cin与cout
例子
2.1.C程序中输入输出
2.2.C++输入输出
2.3.连续输入输出变量
2.4.优雅地换行
好处:
1.少写了很多东西
2.连续输入输出变量
3.换行优雅
3、STL(Standard Template Library)与algorithm头文件
STL是一些“容器”的集合,这些“容器”有list,vector,set,map等,STL也是算法和其他一些组件的集合。
algorithm是对容器继承的一些算法函数,辅助刷算法题
sort函数
概念:迭代器——理解为指针
4、STL——string(*)
概念:相当于char*的封装,理解为字符串
4.1.简单使用
4.2.获取一行字符串
我想获取一行字符串
C中:
C++中:
4.3.+=运算符
+=对于字符串,字符有效,数字会转为asc码
4.4.排序(使用algorithm)
4.5.erase函数
4.6.substr函数
4.7.循环(3种)
1.for循环
2.迭代器
3.迭代器化简
4.利用C++ 11新特性for循环
5、STL——vector(*)
概念:vector相当于数组,模板类型相当于存放的内容
1.vector构造
2.用at或者[]获取元素
3.方法
- push_back追加内容
- resize进行重置大小
- erase删除元素,复杂度为O(n)
- 获取第一个元素,获取最后一个元素
4.排序
第三个参数为比较器,不写默认为less<int>()
5.循环
6、STL——stack(*)
概念:栈
- 构造
- push、pop、size、empty
- push 入栈一个元素
- pop 出栈一个元素,pop无返回值
- top 取栈顶元素
- size 查看元素个数
- 进制转换(十进制转二进制)
- 逆序单词(拓展sstream,stoi,itoa)
输入一行字符串,将字符串逆序打印
输入:hello world my name is steve yu
输出:yu steve is name my world hello
- 字符串转数字
方法1:
方法2:
- 数字转字符串
方法1:
方法2:(c++ 11)
7、STL——queue
概念:队列
- 构造
- push、back
8、STL——map(unordered_map pair)
概念:映射(map为树状表,unorderedmap为哈希表)
- map
- unordered_map
- pair的用法(map转成vector进行排序)
9、set(unordered_set)
概念:集合
- 应用计数、去重
10、STL——deque
概念:双端队列
- 排序
11、STL——list
概念:双向链表
12.文档
英文:
中文: