走进 C/C++后台开发
文章平均质量分 89
走进 C/C++后台开发
Handling[韩镇江]
一名游戏研发者,目前就业于网易互娱,游戏服务器开发,南阳理工学院腾飞游戏开发工作室17级负责人
展开
-
一小时复习完C++Primer!!!
C++Primer全篇总结C++Primer 的了解C++11的新特性C++Primer 的了解C++Primer是基于 C++11标准进行编写的书籍,以 3 位作者 Standley B. Lippman,Josee Lajoie ,Barbara E.Moo在C++语言发展历程中的经历,这本书的权威性自不容置疑的:既有编译器的开发和实践,又参与 C++标准的制定,再加上丰富的 C++ 教学经历。该书是一本由浅入深的教程,同时考虑到该书的全面性,我们也可以当其为教材,以备随时查阅。C++11的新特性原创 2020-05-30 18:09:46 · 1851 阅读 · 0 评论 -
引言:C++中的为什么?
专栏引言:C++中的为什么?(一)博主水平(二)本栏博客目的(三)本栏博客参考书籍(一)博主水平目前来说,博主只是一名大三就读本科生,语言学习过c,cpp,c#, 开发过几款轻型游戏,得过一些算法奖项(名次普通),就业意图为linuxc++服务器开发,与unity客户端开发。(二)本栏博客目的本栏博客大家很清晰明了就能看出是写cpp的东西, 但侧重点不是cpp中的语法,知识点,...原创 2019-12-12 10:53:32 · 115 阅读 · 0 评论 -
C++中程序调试bug时,为什么出bug语句之前的测试输出语句不输出?
C++中程序调试bug时,为什么出bug语句之前的测试输出语句不输出?1. 问题了解2. 问题解答3.总结1. 问题了解下面我将演示一下该问题出现的程序int main() { cout<<"111"; shared_ptr<string> sp; //这里sp并没有被初始化 (即没有在动态内存中分配一个对象初始化sp) cout<<*sp; ...原创 2019-12-12 14:08:11 · 394 阅读 · 0 评论 -
2 进制,8进制,10进制,与16 进制的转换
2 进制,8进制,10进制,与16 进制的转换16 进制表示法 (转换为10进制)16 进制表示法 (转换为10进制)0x :代表了 16进制的前缀表示ABCDEF : (10,11,12,13,14,15) 位值计算:OxFF// 15 * 16^0 + 15*16^1原创 2020-06-24 10:20:02 · 586 阅读 · 0 评论 -
为什么C++工程师在循环语句中使用(不等于运算符)作为条件判断而不使用(小于运算符)?
为什么C++工程师在循环语句中使用 (!=)作为条件判断而不使用 <号 ?1. != 与 < 有什么区别?2. 解答问题3.问题总结1. != 与 < 有什么区别?下面是使用<的cpp(c plus plus 即 c++,cpp)代码:int main() { std::vector<int> ivec(10,1); for (decltype(i...原创 2019-12-12 11:41:45 · 1854 阅读 · 0 评论 -
EffectiveC++ 55个改善编程与设计的有效方法(含代码分析,一定收藏)
EffectiveC++ 项目链接项目链接原创 2020-12-23 17:37:44 · 3313 阅读 · 0 评论 -
规则代码 , Google C++ Style 剖析篇(附图)
Google C++ Style了解Google C++ Style图示Google C++ Style代码测试其规则了解Google C++ StyleC ++是许多Google开源项目使用的主要开发语言之一。每个C ++程序员都知道,该语言具有许多强大的功能,但是这种功能带来了复杂性,这反过来会使代码更易于出错,并且更难以阅读和维护。本指南的目的是通过详细描述编写C ++代码的注意事项来管理这种复杂性。这些规则的存在是为了使代码库易于管理,同时仍然允许编码人员有效地使用C ++语言功能。样式(也原创 2020-05-29 14:36:11 · 2159 阅读 · 1 评论 -
C++Primer 练习3.26解答
C++Primer 练习3.26中的为什么?1. 练习3.26问题了解2. 解答问题1. 练习3.26问题了解问题:在下面的二分搜索程序中,为什么用的是mid = beg+(end-beg)/2,而非mid=(beg+end)/2; ?int main() { std::vector<int> text{1,2,3,4,5,6,7,8,9,10}; //tex...原创 2019-12-12 12:13:04 · 691 阅读 · 0 评论 -
为什么Switch语句内部不能定义变量?
为什么Switch语句内部不能定义变量?(有解决方案)1.问题了解2.问题解答**解决方案:**3.总结1.问题了解我相信很多小伙伴们和我一样在使用switch case语句中遇到过这种问题,定义了一个变量,之后编译就报错,之后也很迷惑不解,这次我们就来认识并解决这个问题。下面是我写的一段代码switch case:int main() { bool b; switch(b) { ...原创 2019-12-12 14:59:30 · 7794 阅读 · 3 评论 -
STL map / set 底层机制: 红黑树完全剖析
前言:在 STL 的容器中两大阵营 (vector deque list forward_list) 顺序容器 与 关联容器 (map set unorder_map unorder_set) 。关联容器指的是以关键字匹配指定数据的一种关联数据结构的集合, 在关联容器中通过关键字去查找对应的数据是非常块的, 下面我们会彻底地去剖析其底层实现机制 : 红黑树。 由基础树 到 二叉搜索树介绍红黑树之前,容许我介绍树的概念。1. 树(tree), 在计算机科学中,是十分基础的数据结构:.原创 2020-08-21 21:55:31 · 2921 阅读 · 0 评论 -
HashTable : HashMap 和 HashSet 说俺是隐形守护者
HashTable原创 2020-08-06 20:39:08 · 322 阅读 · 0 评论 -
送给C++开发朋友们:vector 的 源码分析与使用规范
vector一级目录二级目录三级目录一级目录二级目录三级目录原创 2020-07-31 10:45:04 · 550 阅读 · 0 评论 -
STL容器组件的一位幕后英雄 Heap
做 Heap 的忠爱粉二进制堆建堆堆排序Heap 在 STL 中的职责STL Heap 算法测试实例:二进制堆二叉堆是一种形态特征是完全二叉树,且数值特征是父节点优于/劣于其左右子节点的一种数据结构。父节点优于其左右子节点的堆是大根堆父节点劣于其左右子节点的堆是小根堆由于形状近似完全二叉树,我们可以使用顺序结构(arr )来表示其。这里我们使用顺序结构表示时需要记住两个性质:完全二叉树的父节点为对应数组下标为 N,那么它的左孩子下标为 2 * N + 1,右孩子下标是 2 * N + .原创 2020-08-02 18:25:43 · 307 阅读 · 2 评论 -
不再造轮子,攻略 STL 中的所有算法
不再造轮子,攻略 STL 中的所有算法STL 算法概观1.1 STL 算法总览1.2 质变算法 mutating algorithm1.3 非质变算法 nomutating algorithms1.4 STL 算法的一般形式数值算法2.1 accumulate 元素累计算法2.2 adjacent_difference 相邻元素之间的差额算法2.3 inner_product 求两个区间的一般内积(对应元素相乘之后累加一起)2.4 partial_sum 计算局部总和STL 算法概观1.1 STL 算原创 2020-10-16 15:10:09 · 875 阅读 · 0 评论 -
走进 C/C++后台开发的第五步: Linux网络编程
深度理解网络编程原创 2020-10-06 11:50:14 · 951 阅读 · 1 评论 -
走进 C/C++后台开发的第四步: Linux 多线程编程精讲
多线程编程Linux 多线程概述1.1 概述1.2 线程分类1.3 线程创建的Linux 实现线程的创建和退出线程的等待退出3.1 等待线程退出3.2 线程的取消3.3 线程终止清理函数线程的同步与互斥4.1 线程的互斥4.2 线程的同步4.3 生产者消费者问题线程安全和线程属性5.1 线程安全5.2 线程的属性Linux 多线程概述1.1 概述1.2 线程分类1.3 线程创建的Linux 实现线程的创建和退出线程的等待退出3.1 等待线程退出3.2 线程的取消3.3 线程终止清理函数原创 2020-08-26 14:45:43 · 329 阅读 · 0 评论 -
走进 C/C++后台开发的第三步:Linux进程控制详解
Linux 进程控制 2.1 Linux 进程概述2.1.1 进程的标识符2.1.2 进程的用户 ID 和 组ID (进程的运行身份)2.1.3 进程的状态2.1.4 Linux 下的进程结构2.1.5 进程相关命令2.1.6 进程的调度策略2.1.7 会话,进程组,前台进程和后台进程2.2 进程的创建2.2.1 fork 函数2.2.2 exec 函数族2.2.3 system 函数2.2.4 进程的控制和终止2.3 进程间通信 (Internet Process Connection)查看和删除Sys原创 2020-08-24 16:52:51 · 876 阅读 · 0 评论 -
走进 C/C++后台开发的第二步:Linux文件系统编程
Linux系统编程一. 文件操作编程1.1 基于文件指针的文件操作1.1.1 Linux的文件1.1.2 文件的创建,打开与关闭1.1.3 读写文件1.1.4 修改文件的权限1.2 目录操作1.2.1:获取改变当前工作目录1.2.2 创建删除目录1.2.3 目录的存储原理1.2.4 目录相关操作1.3 基于文件描述符的文件操作 (重点)1.3.1 文件描述符简介1.3.2 打开、创建和关闭文件1.3.3 读写文件1.3.4 改变文件大小1.3.5 文件映射1.3.6 文件定位1.3.7 获取文件信息1原创 2020-08-14 18:45:58 · 251 阅读 · 2 评论 -
展现 Linux C++服务器端编程的精华
Linux C++服务器端编程实战 服务器知识前提IPTCP伯克利 socket API安装 Linux Ubuntu (虚拟机)下载虚拟机:下载 ubuntu 系统:安装 ubuntu 系统XShell课后问题1. **如何判定一个类中是否有成员?**2. **sizeof 对于 类的尺寸估测**3. 当传递动态内存参数时,拒绝在参数传递就地开辟内存服务器知识前提IP网络层协议(internet protocal):无连接,不可靠TCP传输层协议(基于ip 的可靠稳定连接 transfer c原创 2020-06-23 17:54:22 · 1127 阅读 · 0 评论 -
走进 C/C++后台开发第一步:Linux 命令和工具篇
入门 C/C++后台开发:Linux 篇一. 虚拟机/阿里云1. 配置虚拟机网络 / 阿里云使用2. 宿主机的环境3. xshell 安全远程工具二. Linux 简介1. Linux 内核2.POSIX 标准三. Shell 命令1. 用户操作命令2. Linux VFS虚拟文件系统3. Linux 文件操作命令四. vim 文本编辑器 (以后的编码工具)vim 插件 vimplus五. 编译器工具 GCC六. 调试工具 GDB七. 开发动态库和静态库一. 虚拟机/阿里云1. 配置虚拟机网络 / 阿原创 2020-08-13 19:17:15 · 1956 阅读 · 0 评论 -
Linux 程序员必须掌握 Makefile工程项目管理器
Linux 的程序员必须掌握 Makefile工程项目管理器概述规则、目标文件和依赖文件示例伪目标变量预定义变量自动变量使用了变量的 Makefile 示例通配符和模式匹配内置函数循环指定makefile名字的make操作两种十分通用的 Makefile 演示概述规则、目标文件和依赖文件示例伪目标变量预定义变量自动变量使用了变量的 Makefile 示例通配符和模式匹配内置函数循环指定makefile名字的make操作两种十分通用的原创 2020-08-12 21:52:58 · 604 阅读 · 1 评论