因为本人是文科生,所以比较喜欢写东西,将一年多来编程中遇到的各种问题和总结经验分享出来,以供朋友们参考。
所有的主题可以看这张图:
粗略分成4大块:
1.基础知识。包括了数学、数据结构、算法、字符集相关内容、库和一小部分汇编。
2.std。c++语言层面提供的内容,包括容器、异常机制、文件读写套路、正则表达式、lambda表达式和多线程编程。
3.第三方库。涵盖了许多实用的技术,能够处理加解密、图片、视频、网络编程、c++中使用脚本以及游戏引擎。
4.高级主题。涉及到了数据库、并行编程、机器学习、OOP和一些思考。
我将所有具体内容放到了个人网站上,导航页是
https://dins.site/navi-coding-chs/
具体文章列表(标题为英文的内容也为英文,标题为中文的内容也为中文):
Basics
| — Math
| — About Math
| — Calculus
| — Limit
| — Understanding Derivatives
| — Application of Differentiation
| — Antidifferentiation
| — Understanding Integrals
| — Application of Integration
| — Why Working at a 30-Minute Interval
| — Series
| — Sequence
| — Series
| — Convergence Test
| — Taylor Series
| — Linear Algebra
| — Probability
| — Algorithm
| — Big O Notation
| — Divide&Conquer – MergeSort as Example
| — Master Method
| — Randomization in Algorithm – QuickSort
| — Greedy Algorithm -Dijkstra Shortest-Path
| — Data Structure
| — About Data Structure
| — Vector
| — List
| — Stack
| — Queue
| — Priority Queue
| — Hash Table
| — Binary Tree
| — Binary Search Tree – Part A
| — Binary Search Tree – Part B
| — Splay Tree – Part A
| — Splay Tree – Part B
| — AVL Tree – Part A
| — AVL Tree – Part B
| — RedBlack Tree – Part A
| — RedBlack Tree – Part B
| — RedBlack Tree – Part C
| — Graph – Concept
| — Graph – BFS
| — Graph – DFS
| — Character Set
| — 字符集简史
| — 读取文本文件 – 没有你想象的那么容易
| — 字符集 – best practice
| — Assembly
| — 汇编基础
| — 函数调用过程——汇编的视角
| — Library
| — 静态库(lib)
| — 动态库(dll)
| — 带MFC的dll
| — 带MFC的lib
std
| — Container
| — c++的容器类
| — Exception
| — c++异常机制
| — File I/O
| — 如何写文本文件
| — 如何读文本文件
| — 如何读写二进制文件
| — Regex
| — 正则表达式 – 基础篇
| — 正则表达式 – 进阶篇
| — Lambda
| — 函数对象与lambda表达式
| — MultiThread
| — Windows多线程编程 – 基础
| — Windows多线程编程 – 互斥问题
| — Windows多线程编程 – 同步问题
| — 标准库多线程编程 – 基础
| — 标准库多线程编程 – 互斥问题
| — 标准库多线程编程 – 同步问题
| — c++异步调用机制
3rd Library
| — nlohmann::json
| — nlohmann::json概述与基础用法
| — nlohmann::json万能数据结构
| — Asio
| — socket概述
| — 服务器模式:阻塞+多线程
| — 服务器模式:非阻塞+轮询
| — 服务器模式:多路复用
| — asio环境搭建
| — asio基础使用方法
| — asio服务器模式:多线程或轮询
| — asio服务器模式:异步调用
| — http概述
| — 服务器环境搭建
| — AngelScript
| — AngelScript环境搭建
| — AngelScript框架介绍
| — AngelScript基础用法:注册函数
| — AngelScript进阶用法:在脚本中使用代码类
| — AngelScript进阶用法:在代码中使用脚本类
| — AngelScript高级概念:object handle与OOP
| — AngelScript SDK: dictionary讲解
| — 脚本与程序交互推荐方式:json解析
| — 脚本与程序交互推荐方式:json去格式化
| — Crypto++
| — crypto++环境搭建
| — crypto++框架介绍
| — 非对称加密算法之RSA
| — 散列算法之SHA
| — 对称加密算法之AES
| — GraphicsMagick
| — graphicsmagick环境搭建
| — 如何将gif逐帧分解
| — VLC
| — VLC环境搭建
| — VLC基础用法
| — 如何实现一个看上去是嵌入式视频的功能
| — Urho3d
| — 编译Urho3D库
| — Urho3D自建项目
| — Urho3D引擎框架
| — Urho3D数据结构
| — 初识子系统与场景模型
| — 事件与使用
| — 响应用户输入
| — 文字与国际化
| — 场景模型进阶-逻辑与脚本
| — UI研究
| — 场景模型进阶-切换场景
| — 2D场景概述
| — 2D场景-实现鼠标选中场景物体(一)
| — 2D场景-实现鼠标选中场景物体(二)
| — Cocos2dx
| — cocos2d-x萌新指南(零):新建项目
| — cocos2d-x萌新指南(一):图片、按钮
| — cocos2d-x萌新指南(二):音乐、帧动画
| — cocos2d-x萌新指南(三):场景与转换
| — cocos2d-x萌新指南(四):cocosstudio
| — cocos2d-x萌新指南(五):导入cocosstudio
| — cocos2d-x萌新指南(六):制作弹窗
| — cocos2d-x萌新指南(七):拖动图片
Advanced
| — Database
| — SQLite简介
| — Database Design – Basics
| — OpenMP
| — OpenMP简介
| — OOP
| — 我们为什么需要面向对象编程?
| — 数据抽象
| — 继承
| — 动态绑定/多态
| — OOP实例-水果商人(一)
| — OOP实例-水果商人(二)
| — 设计模式-创建型
| — 设计模式-结构型
| — 设计模式-行为型
| — OOP若干原则
| — OO建模
| — GUIFrame
| — 思考GUI框架:FOP和OOP
| — VsHMM框架
| — Machine Learning
| — Coming soon
| — Misc Thoughts
| — 注释三原则
| — 编程的政治哲学
| — 初心算法
| — 程序员与艺术家
| — 软件robust性思考
做个人网站属于兴趣爱好,也算留个纪念。虽说除了编程外还有其他内容,不过既然在csdn发帖,读者应该只对编程部分感兴趣,其他的随缘。
讲解尽量做到细致,并给出可操作的代码,同时假设读者没有相关背景知识,这也跟写论文的方法是一致的。所以对于老司机某些文章可能略显繁琐,跳读即可。后续随着研究深入还会继续更新。
希望能够帮到在c++领域奋斗的朋友们,少绕一些弯路。祝好!