C/C++ C++文件输入输出流 fstream 的基本用法 一、文件流 C++的 IO 类中定义了三个文件读写流 fstream 、 ifstream 以及 ofstream,它们都继承于相同的父类 istream,通过不同的实现以实现不同的文件流操作。 三者的区别为: if... 12 月 26 日3,567评论 阅读全文
C/C++ using 指令和 using 声明的区别 使用形式: using 指令 (using directive) 的使用形式为 using namespace std 。 using 声明 (using declaration) 的使用形式为 using std::... 11 月 07 日1,274评论 阅读全文
C/C++ C++11 中 const_cast 的真实使用场景 一、 const 和成员函数的故事 const 的用途有以下几种: 修饰全局、局部、成员变量 修饰成员函数 修饰变量的时候 const 限制了变量在整个程序运行期间都是不能修改的,而修饰成员函数的时候限制函数内... 10 月 19 日1,5791 c++11 阅读全文
C/C++ C++11 中的 override 和 final 关键字 一、前言 昨天在公司做代码扫描,发现很多类似以下的代码都产生了告警,导致扫描不通过: [crayon-6823a1065e293374383834/] 不通过的原因是:同时使用 virtual 和 over... 10 月 17 日3,2971 c++11 阅读全文
C/C++ 服务端的 socket 如何知道客户端是通过什么 IP 地址连接过来的 问题场景:服务器有多个网卡,分别绑定了地址 A 、地址 B 和地址 C,当客户端连接请求过来的时候,如何知道是从哪个 IP 地址请求过来的? 解决方案:服务端 accept 客户端的连接后,对这个新接受的 socket 进... 05 月 09 日1,150评论网络编程 阅读全文
C/C++ 给 socket 分配随机端口 客户端的 socket 不需要手动执行 bind 绑定地址,但这不意味着客户端 socket 真的不需要绑定端口,实际上是内核它帮我们做了这个操作,在执行 connect 时,内核发现没有绑定端口,就会自动选择一个合... 04 月 25 日5,369评论网络编程 阅读全文
C/C++ vector 中 emplace_back 方法的用途 在写代码的过程中,CLion 提醒我把 push_back 方法替换成 emplace_back 方法: emplace_back 函数的作用是减少对象拷贝和构造次数,是 C++11 中的新特性,主要适用于对临时对象... 04 月 06 日12,2551 stl 阅读全文
C/C++ 宏定义踩坑实战:嵌套调用宏定义 问题背景:在刷题的过程中,要使用 min 函数,但是线上 OJ 并没有这个函数。因为一时也想不起它到底属于哪个头文件,所以为了偷懒,顺手就写下了以下宏定义: [crayon-6823a1065eb9e9832... 04 月 06 日3,1201 阅读全文
C/C++ 如何在 c 语言中动态分配二维数组 刷 OJ 的时候惊喜的发现,我竟然不会给二维数组动态分配内存。写了 n 年的代码了,竟然被这个难倒了!没想到好多年没搞算法,不仅脑袋不灵光了,连基础都丢了。真是自惭形秽! 方法一 先分配指针数组的内存,然后给... 04 月 05 日299评论 阅读全文
C/C++ C++中的异常处理 一、异常处理 1.1 异常的基本用法 C 语言中因为没有异常处理 (只能通过返回值来判断错误) 机制一直被诟病,因此 C++也引入了 try...catch 机制,使得 C++也能像 java/python 一样来捕获... 03 月 01 日1,728评论 阅读全文