c++部分笔记
主要是一些细碎的知识和stl的简单用法
@TOC
cout的输出设置
1 |
|
#include<iomanip>
1 | 1.setw(width) 用于cout |
printf的输出设置
1 |
|
是否输入_判断
1 |
|
向量_sort
1 | 对向量vector和string类字符串用sort()函数排序时使用s.begin(),s.end() |
系统调用
1 |
|
指针
1 | 1.int* p1,p2; //p1为整形指针变量,而p2只是整形变量 |
cin异常处理
1 | 1.cin判断输入失败 |
1 | //eg: |
1 | 2.清除失败状态 |
1 | //eg: |
1 | 3.连续输入|输入其他类型结尾|同类型结尾用&&附加条件或在内部用if判断 |
1 | //输入30 10 5 Q(Q为结尾标志) |
1 | 4.连续输入并去除其他类型数据 |
1 | //输入30 10 5 Q 20 u 8 29 q q q q 29 |
c++输入输出重定向
1 | 1.使用freopen将cin,cout重定向 |
随机数
1 | rand() |
typeinfo
1 | 查看变量类型 |
向量
1 |
|
基于区间的循环
1 | vector<int> value={0,1,2,3,4,5,6}; |
文件流
1 |
|
加速
1 | ios::sync_with_stdio(false); |
const
1 | 不可变量 即 可读不可写 |
万能头文件
1 |
构造函数
1 | int a(2); |
class
1 | class Point{ |
Zeller’s coniogruence公式计算星期
1 | w=(d+5+(26*(mm+1)/10)+5*(year%100)/4+21*(year/100)/4)%7 |
c++继承
1 | public:内部外部均可访问,继承可访问 |
c++函数重载与运算符重载
1 | //函数重载解决函数功能相同但参数不同的问题 |
1 | 输出结果:(注释掉3,4,5,6) |
STL基础
迭代器iterator
1 | 正向迭代器支持:it++,++it,*it,=,==,!= |
容器 | 迭代器功能 |
---|---|
vector | 随机访问 |
deque | 随机访问 |
list | 双向 |
set/multiset | 双向 |
map/multimap | 双向 |
stack | 不支持迭代器 |
queue | 不支持迭代器 |
priority_queue | 不支持迭代器 |
1 | //以set为例 |
1 | //迭代器相关函数 |
顺序容器
vector
vector相关资料
关于capacity()与size()
关于reserve()和resize()
1 | // |
deque
1 | //容器的操作大同小异 |
list
1 | merge();//合并list |
关联容器
set
set基础操作
set自定义结构体和排序
反向遍历
equal_range的理解
insert(otherset.begin(),otherset.end())
1 |
|
1 | // |
1 | 其他基础操作 |
multiset
map
1 |
|
multimap
容器适配器
stack
queue
priority_queue
sort对部分容器排序
不同容器的比较
字符串与字符数组
#include<cstdlib>
atoi函数
1 | int y=atoi("2020"); |
c字符串函数
1 | strlen(s) |
string
1 | string s; |
#include<cctype>
1 | toupper() 小写字母转大写 |
c++动态内存分配
1 | //new |
-------------本文结束感谢您的阅读-------------