C/C++ is the oldest programming language that has survived the ages, and even today’s hot AI is written in it.
So how to learn C++ quickly as a beginner? Coding, of course! All learning to program without writing code is fooling around. The following is a selection of 22 C++ projects, recommended beginners practice first choice!
1.C++ implements cardinality trees
Implementation of Radix tree using C++ : a search tree based on binary representation of key values, especially suitable for dealing with very long, variable length key values, Patricia’s basic idea is to build a binary tree.
2.C++ implementation of parallel computing k-means clustering algorithm
Use C++ to implement a complete object-oriented parallel k-means algorithm.
3.C++ implements the STL library and algorithm
C++ STL container and algorithm implementation.
4.C++ implementation of memory leak checker
Memory leaks have always been a major problem in C++, and even experienced C++ programmers sometimes inadvertently write code that causes memory leaks. This project uses C++ to implement a memory leak checker.
5.C++ implements high-performance memory pools
The speed of memory allocation from the pool is higher than the speed of memory allocation from the heap, and the implementation of memory pool is essential for a long-term stable service in pursuit of perfection. Like the default allocator in the standard library, a memory pool is essentially an allocator. This project designs and implements a high-performance memory pool using C++.
6.C++ implementation of high performance RTTI library
RTTI is short for run-time type recognition. C++ provides the dynamic_cast and typeid operators for run-time type checking. Dynamic_cast is not efficient and requires some performance sacrifice. This project will implement a high performance RTTI library manually using C++.
7.C++ implementation of smart Pointers
Use C++ language to realize the process of intelligent pointer, to understand the basic C++ programming methods, including the definition and use of class, operator overload, the use of template classes, and reference counting technology.
8.C++ instant messaging software
Use C++ to achieve a server and client instant messaging chat room, involving network programming, C++ object-oriented programming and other knowledge.
9.C++ curriculum management system
Use C++ to achieve a course management system, in this process will introduce a lot of features of C++ 11, while you can be familiar with Linux C++.
10.C++ implementation of bank queuing service simulation
Using C++ to simulate the bank queuing service, with event driven as the core idea, manual implementation of template chain queue, random number generator and other contents, and then learn probabilistic programming knowledge. As an optional step, this model can also be applied to the CPU contention model with minor modifications.
11.The C++ operation redis implements asynchronous subscription and publishing
Operation of Redis to implement asynchronous subscription and publishing, which will introduce the basics of Redis, in Linux to install and use Redis, the commonly used Hiredis API, and implement a routine.
12.C++ uses openGL to implement pac-man games
Through C++ and openGL library to achieve a small pac-man game. Using the standard template library, not only the review of their previous knowledge is also a C++ programming ability to improve.
13.C++ solves the maze problem
Through C++ to achieve a maze game, the game not only involves the simple C++ game ideas, but also involves the depth first traversal algorithm.
14.C++ based on OpenCV real-time monitoring and motion detection record
The library functions provided by C++ and OpenCV are used to realize the real-time monitoring function of the camera, and select whether to record the video by detecting the movement of the monitoring picture. The monitoring personnel can choose the mode of output image to distinguish the abnormal situation in monitoring more easily.
15.C++ implementation of simple Docker container
C++ and Linux Namespace and Control Group technology combined to achieve a simple Docker container.
16.C++ development Web services framework
The HTTP and HTTPS server framework will be implemented using a combination of C++11 and Asio in Boost.
17.Write json generator in C++
Write a json generator in C++, generate json data, and learn to write test cases.
18.C++ uses QT to implement PDF reader
Use QT development environment to achieve a PDF reader. The main content includes the basic usage of QT and graphical interface design, as well as the use of third-party library Poppler.
19.C++17 homemade scripting language
Make your own scripting language using C++. It supports functions, conditional/bit/logical operations, and native string/array types. Mainly from the theoretical point of view, gradually build lexical analyzer, parser, AST, runtime, and finally achieve a complete scripting language, and use the scripting language to solve some practical problems.
20.C++ to achieve the solar system planetary system
The implementation of a simple solar system using the OpenGL GLUT in C++ will involve the mathematical foundation of 3d graphics technology, the 3d coordinate system in OpenGL, the illumination model in OpenGL, and the keyboard event processing of GLUT.
21.C++11 implements NoSQL databases from scratch
A kv database project — Qedis, which is fully compatible with redis, is realized by C++11. This project will use some C++11 core features and STL library, and use the existing TCP network library, gradually build a fully compatible Redis higher performance in-memory database.
22.C++ implements XML parsing
XML document content parsing is realized by C++, which makes full use of C++ features and generic programming ideas. Through this course, I can standardize my programming habits and accumulate experience in large-scale project development.
Synchronous zhihu column: zhuanlan.zhihu.com/p/86779615