
C++
基础
SYaoJun
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++刷题常用技巧
小技巧原创 2022-06-01 07:42:41 · 617 阅读 · 0 评论 -
命名空间namespace
说明命名空间别名匿名代码#include <iostream>using namespace std;namespace first_space{ void func() { cout<<"hello"<<endl; }}namespace second_space{ void func() { cout<<"world"<<endl; }}/*起别名*/namespace hello = first_原创 2022-01-09 23:33:38 · 220 阅读 · 0 评论 -
仿函数和谓词
定义仿函数创建的对象,也称为函数对象,两者是一个意思。参考视频仿函数本质是个类,重载了小括号。仿函数可以作为参数传递。可以有自己的状态使用普通使用#include<bits/stdc++.h>using namespace std;class MyAdd{public: int operator()(int a, int b){ return a + b; }};int main(){ MyAdd myAdd;原创 2020-10-24 09:46:51 · 600 阅读 · 1 评论 -
set和map和priority_queue自定义排序
set自定义排序#include <iostream>#include <string>#include <algorithm>#include <set>#include <vector>using namespace std;// set存放自定义数据类型class Student{public: Student(string name, int age){ this->name = name;原创 2020-06-27 00:00:15 · 743 阅读 · 0 评论 -
QT入门笔记
首先建立空项目文件,建立好之后创建C++源文件,通常取名为main,然后在project中添加一句QT += widgets gui接着在main函数中编程Hello world#include&lt;QApplication&gt;#include&lt;QWidget&gt;int main(int argc, char* argv[]){ QApplication ap...原创 2018-11-20 15:52:25 · 173 阅读 · 0 评论 -
分布式共识算法raft
raft是通俗易懂版的paxos算法Raft 将一致性问题分解成了三个相对独立的子问题:领导者选举(Leader election)、日志复制(Log replication)、安全性(Safety)。核心主要用来解决:分布式存储系统中维护多个副本节点的一致性问题。状态leaderfollowercandidate对于leader有一个任期,是依次增长的,只有最新的任期有效。...原创 2020-01-03 10:52:51 · 242 阅读 · 0 评论 -
23个设计模式
面向对象封装:隐藏内部实现继承:复用现有代码多态:改写对象行为面向对象设计原则单一职责原则SRP开放封闭原则OCP依赖倒置原则DIPLiskov替换原则接口隔离原则优先使用对象组合,而不是类继承封装变化点针对接口编程而,不是针对实现编程模板方法 template method早绑定变成晚绑定稳定的整体,变化的子步骤不要调用我,让我来调用你。——library...原创 2020-01-02 22:57:45 · 117 阅读 · 0 评论 -
C++模板
模板包括函数模板和类模板模板可以实现泛型编程template <typename/class T>T disp(T &a, T &b){}函数模板注意事项:自动类型推导,必须推导出一致的数据类型T,才可以使用模板必须要确定出T的数据类型,才可以使用#include <iostream>using namespace std;tem...原创 2020-01-02 16:19:21 · 188 阅读 · 0 评论 -
C++多态
静态多态:函数重载和运算符重载静态多态也叫函数地址早绑定,在编译阶段确定函数地址。动态多态动态多态满足条件:有继承关系子类重写父类的虚函数多态的使用:父类的指针或引用指向(接收)子类对象\color{red} 父类的指针或引用指向(接收)子类对象父类的指针或引用指向(接收)子类对象空类大小是1个字节加上virtual后变成4字节,本质是一个虚函数(表)指针\color{red}...原创 2020-01-02 15:00:49 · 117 阅读 · 1 评论 -
多进程
创建子进程#include <stdio.h>#include <unistd.h>#include <stdlib.h>int main(){ pid_t pid; printf("xxxxxxxxxxxxx\n"); pid = fork(); //one call, two return if (pid == -1...原创 2019-11-13 18:07:56 · 265 阅读 · 0 评论 -
多线程
线程控制原语编译:gcc pthread.c -o ph -pthreadpthread_slef() = getpid()pthread_create() = fork()#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <pthread.h>void...原创 2019-11-13 18:03:54 · 212 阅读 · 0 评论 -
Vim常用命令
1. i o a 插入2. u 撤销3. y 复制4. p 粘贴5. v 启用光标选中 一个字符为单位6. V 启用光标选中 一行为单位7. :set nu 设置行号 8. :set nonu 取消行号9. gg 光标移动到开头10. G 光标移动到末尾11. X 删除光标前的一个字符12. x 删除光标后的一个字符 13. r 替换 再按一下输入替换的字符14. gg=...原创 2019-11-12 14:17:34 · 124 阅读 · 0 评论 -
C++继承
继承中的对象模型父类中所有非静态成员属性都会被子类继承下去父类中私有成员属性是被编译器给隐藏了,因此是访问不到,但是确实被继承下去了。#include <cstdio>#include <iostream>using namespace std;class Base{ public: int m_A; protected: int m_B; pr...原创 2019-11-10 10:29:45 · 115 阅读 · 0 评论 -
C++引用
引用引用不会开辟一块新的内存,而是为原来的变量起别名。引用必须要初始化,一旦初始化化后,就不可以修改指向了。引用的本质在C++内部实现是一个指针常量传递引用不要返回局部变量的引用#include <cstdio>#include <iostream>using namespace std;int& f(){ int a = 10; ret...原创 2019-11-10 09:13:26 · 144 阅读 · 0 评论 -
Linux压缩包处理tar和rar及zip
tar传统包tar cvf dir.tar dir 压缩包tar xvf dir.tar 解压包tar.gz包z是一种压缩算法tar zcvf dir.tar.gz dir 压缩包tar zxvf dir.tar.gz 解压包tar zxvf dir.tar.gz ~/yaojun/test 解压到指定目录tar.bz2包j是一种压缩算法tar jcvf dir.tar...原创 2019-11-09 20:12:53 · 331 阅读 · 0 评论 -
linux常用命令【不定时更新】
学习所用视频新学的命令treewc -c 字节数 -l 列数 -w 字数od -tc hello.cod -tcx hello.cdu 查看目录大小du -hm aa 以M为单位du -hb aa 以Byte为单位du -hk aa 以K为单位df 查看磁盘使用情况df --block=GB df --block=MBdf --block=KBwhoami 产看当前登陆...原创 2019-11-09 20:03:25 · 262 阅读 · 0 评论 -
C++内存分区
内存分区代码区:二进制代码0101111(共享,只能读)全局区:存放全局变量和静态变量以及常量(字符串常量和const修饰的全局常量)栈区:由编译器自动分配和释放,存放局部变量(包括const修饰的局部变量),函数的参数值。(该区域的数据在程序结束后由操作系统释放)堆区:由程序员分配和释放(new),程序结束时由操作系统回收。设计模式在一定环境下,用固定套路解决问题。Libeve...原创 2019-11-09 18:50:33 · 139 阅读 · 0 评论 -
多路复用
Select跨平台的系统API可以在windows、linux、unix平台下运行主要缺点:1.文件描述符上限固定为10242.监听和返回集合是同一个参数3.每次查找满足要求的文件描述符需要遍历1024次Poll对select的适当改进,在linux,unix平台下常用1.可以通过修改配置文件的方式修改文件描述符监听上限2.监听和返回集合分离3.搜索范围变小Epoll只在l...原创 2019-11-02 17:34:25 · 335 阅读 · 0 评论 -
C++基础知识
freopen#include<iostream>using namespace std;int main(){ freopen("input.txt","r",stdin);//打开input文件,表明为读入,所有scanf的内容都是从这里读的 freopen("out.txt","w",stdout);//打开out文件,表明为写入,所有printf之类的内容都写在里...原创 2019-07-11 17:31:48 · 230 阅读 · 0 评论 -
C++基础知识
友元不是类的成员函数 友元关系不能被继承,不具有交换性,不具有传递性 友元提高了程序的运行效率,但是破坏了类的封装性和隐藏性 归纳起来:友元函数是一种能够访问类中的私有成员的非成员函数 一个类的友元函数能够访问类的所有成员 C++不允许将构造函数和析构函数声明为友元函数 友元分为:友元函数friend void fun()和友元类friend class BC++默认采用4字节对齐...原创 2018-03-06 10:31:59 · 597 阅读 · 0 评论 -
C++11特性
编译g++ main.cpp -std=c++141.空指针nullptr2.常量表达式constexprconstexpr int f(const int n){ if(n == 1) return 1; if(n == 2) return 1; return f(n-1) + f(n-2);}int arr[f(4)+5];3.类型推导auto和decltypeaut...原创 2019-07-27 12:55:52 · 125 阅读 · 0 评论 -
C++基础知识
1.数组元素最好用指针表示,因为指针表示要比下标表示处理起来更快。 2.重载函数要求同名函数的至少有一个参数或者个数不同,而对返回值的类型没有要求。 3.构造函数可以重载,可以带参数;析构函数不能重载,不能带参数;构造函数和析构函数都没有返回值。 4.静态成员分为:静态数据成员和静态成员函数,在类中初始化要加关键字static。 静态数据成员:是类的所有对象共享的成员,也称为类成员。 静...原创 2018-02-09 22:23:21 · 587 阅读 · 0 评论 -
Linux常用命令
C++vim hello.cppg++ -std=c++11 -o test test.cpp./testJavajavac hello.javajava hellogithubwin10系统常用的命令git add . //全部添加至缓存git commit -m "comments" //确认上传并添加注释git push -u origin master //传至...原创 2019-08-12 16:57:09 · 166 阅读 · 0 评论 -
C++面试总结
一言以蔽之深度不够,学习能力一般,表达业余。面向对象的三大特性:封装性,继承性,多态性。智能指针:unique_ptr不允许多个指针共享资源,可以用标准库中的move函数转移指针shared_ptr多个指针共享资源,weak_ptr不详内部函数(静态函数)static:在定义它的文件中可以被调用,在同一程序的其他文件中不可被调用。外部函数extern内联函数代码并不被相同类的对象所共...原创 2019-08-21 16:23:41 · 174 阅读 · 0 评论 -
C++文件读入
#include<iostream>using namespace std;int main(){ freopen("input.txt","r",stdin);//打开input文件,表明为读入,所有scanf的内容都是从这里读的 freopen("out.txt","w",stdout);//打开out文件,表明为写入,所有printf之类的内容都写在里面了 cha...原创 2019-08-29 17:00:39 · 471 阅读 · 0 评论 -
c++正则表达式
中国MOOC网 青岛大学《数据结构与算法》 周强正则表达式返回的true或者false#include <cstdio>#include <iostream>#include <vector>#include <string>#include <regex> using namespace std;int main(){...原创 2019-09-10 15:57:32 · 174 阅读 · 0 评论 -
ACM使用C/C++入门编程
ACM入门原创 2016-02-16 08:52:21 · 1055 阅读 · 0 评论 -
makefile用法入门
根据正月点灯笼视频学习而做的笔记样例1tool.c和main.c联合编译注意tool.c中不能以main函数开头,只能是其他的任意函数,同时需要包含tool.c函数声明的头文件tool.htool.hint find_max(int arr[], int n);tool.c#include "tool.h"int find_max(int arr[], int n){ i...原创 2019-10-10 11:15:25 · 401 阅读 · 0 评论 -
sscanf与sprintf
sscanf简单样例#include<cstdio>int main(){ char str[100]="1234"; int n; sscanf(str,"%d",&n); //取地址符很重要 printf("%d",n); return 0;} sscanf按格式划分#include<cstdio>int main(){ char ...原创 2019-07-13 06:50:08 · 163 阅读 · 0 评论