C++
幡然的蜗牛
立志改变一些事情
展开
-
2021-05-20
原创 2021-05-20 10:10:12 · 108 阅读 · 0 评论 -
C++的一些基本算法举例
#include <iostream> #include <cstdlib> #include <cstdio> #include <cstring> #include<string> #include<vector> #include<algorithm> #include <map> #include <list> int main(void) { std::vector<in..原创 2021-05-14 15:22:49 · 176 阅读 · 0 评论 -
c++ 的重要特殊关键字
const关键字 常量是固定值,在程序执行期间不会改变 int *const p; // 指针是常量,指向的值可以发生改变(const pointer to int) const int p; //p是常量,无法发生改变 const int *p; // p的值(指针)可以发生改变,指向的值不能发生改变(pointer to const int) const int *const p; // 指针和值都不能发生改变(const pointer to const int) ...原创 2021-05-12 15:06:19 · 168 阅读 · 0 评论 -
简单线程池的实现
1. 简单版本的 #include <iostream> #include <cstdlib> #include <cstdio> #include <string> #include<vector> #include<algorithm> #include <map> #include <queue> #include <sys/types.h> #include <unistd.h>原创 2021-05-12 11:20:50 · 109 阅读 · 0 评论 -
C++小技巧
C++重点知识小技巧 带多态性质的 bass classes 应该声明一个virtual析构函数,如果class带有任何virtual函数,它就应该拥有一个virtual析构函数。 classes的设计目的不是作为base classes使用,或不是为了具备多态性,就不应该声明virtual析构函数,会增加额外的内存空间 析构函数绝对不要吐出异常。如果一个被析构函数调用的函数可能抛出异常,析构函数应该捕捉任何异常,然后吞下他们(不传播)或结束程序 ...原创 2021-05-11 17:24:04 · 158 阅读 · 0 评论 -
C++的STL之安全队列
C++的STL是线程不安全的,如果想要在多线程中使用的话需要加锁, 这里简单封装了如下四个接口 入队操作 阻塞式等待 非阻塞式等待 判断是否为空 代码如下所示: #include <thread> #include <mutex> #include <condition_variable> template<typename T> class ThreadSafeQueue { public: ~ThreadSafeQueue() =原创 2021-04-14 16:53:42 · 422 阅读 · 0 评论