c/c++笔记

一.emm

1.废话

1.1怎么说呢,就是好多知识点记不住(比如说我几个月前自己学了一些html/css等,现在几乎完全不会码了QAQ),找来找去也麻烦,所以自己随便写个来方便自己看的

1.2.这博客打算访问权限打算设置的公开,毕竟作为一个bug写手,也希望大佬纠错指点,本菜狗博客

1.3.这博客会不定期更新,emm虽然更新的大部分是我基本上掌握的(主要作为个人复习来用),而且大部分都打算直接放链接(个人认为比较易懂的(感谢那些写博客的大佬))

2.较全面的大佬笔记链接

2.1 STL详解

链接:STL详解

3.个人常用的几个网站

3.1刷题网站(各有各的特色)(还有一些网站也很好,不过我没怎么用到。。)

AcWing

牛客网 (nowcoder.com)

OpenJudge - NOI - 首页

Loading - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

首页 - New Online Judge (ecustacm.cn)

Codeforces

AtCoder

题目集列表 (pintia.cn)

Welcome To PKU JudgeOnline (poj.org)

Home | JXNUOJ

3.2查资料网站

CSDN - 专业开发者社区

博客园 - 开发者的网上家园 (cnblogs.com)

GitHub中文社区 (githubs.cn)或者GitHub: Where the world builds software · GitHub(目前本菜狗还不怎么会用QAQ)

二.一些杂问题

1.位运算符号

img

图源:位运算(&、|、^、~、>>、 | 菜鸟教程 (runoob.com)

位运算求二进制最后一个1的方法为n&(-n)

注:-n的二进制是n的补码

2.define和typedef的区别:

define是在以后代码中进行替换字母等,而typedef是切换类型

参考链接:typedef和define具体的详细区别

3.数组开大溢出问题

解决方法,定义数组时把数组放到main上面

参考链接: C/C++开大数组溢出问题

4.悬浮指针问题

函数返回时不用返回局部变量地址

参考链接:【C/C++】原来这样做就能避免C语言悬垂指针问题

5.cin和scanf的区别

详细参考:C算法:C++中cin和scanf的区别

6.读入带空格的字符串方法

参考链接: c/c++中读入字符串(包含空格)(3条消息) C++字符串的几种输入方法(string和字符数组)

7.头文件string和cstring的区别

参考链接:cstring和string的区别

8.用scanf读入string类型

参考链接:使用scanf输入string类型变量

9.计算字符串的长度

参考链接:C/C++计算字符串的长度

10.判断stringstream中是否为空和如何清空stringstream

参考链接:判断stringstream中是否为空如何清空stringstream

三.一些函数

  常见头文件:参考链接:C/C++常用头文件及函数汇总

        参考链接:C 标准库 – 参考手册 | 菜鸟教程 (runoob.com)

1.关于cmath中的几个简单的函数

    1.1 pow函数pow(a,b)返回a的b次方(返回的是double类型) sqrt函数sqrt(n)求n的平方根

    1.2 ceil (向上取整),floor(向下取整) ,round(四舍五入)函数

    1.3 abs函数(整型取绝对值),fabs函数(浮点型取绝对值)

    1.4 exp()函数exp(n)值为e^n次方,以e为低的log()函数,另一种为以10为底的log 10()函数;

2.关于algorithm中的几个简单的函数

    2.1 sort函数进行排序(默认从小到大)

      参考链接:C++中sort函数使用方法

    2.2 reverse函数进行翻转(这个也不难)

      参考链接:C++中的reverse()函数

    2.3 max_element函数找最大值,反之min_element是求最小值

      参考链接:C++ max_element()的使用

    2.4 unique函数,去掉数组或向量等类型相同的元素(实际上就是前移的说)(在用前记得排序)

      参考链接: unique函数用法

      补:erase函数(头文件看情况)常和unique函数一起用去删除数组等后续元素

      参考链接:C/C++语言中erase()函数的用法

      参考链接:unique及erase的联合运用

3.关于queue中定义队列

    3.1 普通队列queue(先进先出)

      参考链接:queue的常用函数queue函数

    3.2 优先队列priority_queue(自动排序,默认从大到小)

      参考链接:优先队列 priority_queue 详解

4.关于stack中定义栈(先进后出)

    参考链接:栈(stack) C语言实现

5.关于cstdlib函数中遇见的进制转换函数

    5.1 itoa函数(数字转字符串),atoi函数(字符串转数字)

    参考链接:C语言itoa()函数和atoi()函数详解(整数转字符)

6.关于vector中定义向量

    参考链接:C++ vector的用法(3C++ vector用法(详解!!函数,实现)c++之vector 及 二维容器vector<vector<int>>初始化方法 (这个看看就行)

  

四.一些模板

1.二分模板

    链接:【算法】四种二分模板二分查找算法模板 - AcWing

​ 既然说到了二分,那就再提一下插值查找把

​ 链接:查找算法之插值查找

2.dp中背包问题

    链接:动态规划-背包问题

3.10大排序算法

    链接:1.0 十大经典排序算法 | 菜鸟教程 (runoob.com)

4.acwing中总结的一些模板(感觉超好的说)

链接:常用代码模板2——数据结构 - AcWing常用代码模板1——基础算法 - AcWing

5.杂记

1.约瑟夫环

链接:约瑟夫环

2.快速gcd函数(求最大公约数)

链接:gcd函数的写法

3.约数定理

链接:约数定理(约数个数定理,约束和定理)

4.A*算法(搜索)

链接:A*算法

5.树状数组和线段树

链接:树状数组线段树

6.邻接表

链接:邻接表

posted @ 2022-03-12 07:37  真⸙的菜狗꧔ꦿ  阅读(135)  评论(0)    收藏  举报