- 博客(5)
- 问答 (1)
- 收藏
- 关注
原创 C++STL容器使用erase方式
C++STL容器使用erase方式 函数原型:从容器中移除所有和value相等的元素 size_type container::erase(const T& value);将iterator pos位置元素移除, 返回后继位置 iterator container::erase(const_iterator pos);移除区间[begin, end)内所有元素,返回最后一个被移除元素的位置 iterator container::erase(const_iterator begi
2020-09-30 16:19:57 404
原创 memcpy和memmove使用区别
memcpy函数原型void *memcpy(void *dest, const void *src, size_t n);man手册描述:memcpy()函数从内存区域src复制n个字节到内存区域dest。内存区域不能重叠。如果内存区域重复使用memmovememcpy实现void *memcpy(void *dest, const void *src, size_t n){ ...
2019-12-09 14:22:21 119
原创 c++无锁编程实现栈
CAS操作高并发服务器经编程,需要操作共享数据,为了保护数据的正确性,有一种有效的方法就是加锁机制,但这种方式存在以下一些缺点:在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题一个线程持有锁会导致其他所有需要此锁的线程挂起为了解决多线程并行情况下使用锁造成性能损耗的问题。引入CAS 操作:该包含三个操作数 —— 内存位置(V)、预期原值(A)和新值(B)。 如果...
2019-10-31 15:55:12 422
原创 手写最简单线程池实现
线程池介绍线程池是一种多线程处理形式,首先创建一些线程,它们的集合称为线程池,处理过程中将任务添加到队列,然后线程池就会启动一条线程来执行这个任务,执行结束以后,该线程并不会死亡,而是再次返回线程池中成为空闲状态,等待执行下一个任务。使用线程池目的是通过不断使用这些固定数量的线程调度进行处理,避免了在高并发情况下,不断开辟线程造成的进程资源消耗。下面是一个简单的线程池程序。数据结构主要有两个...
2019-10-23 16:46:17 192 1
原创 重建二叉树
重建二叉树输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。1、思路根据前、中序遍历的特点,(根左右、左根右),先根据前序遍历确定根节点,然后在中序遍历知道该根节点的左右树的数量,反推出前序遍历中左子树的...
2019-10-18 15:10:25 103
空空如也
获取表字段类型,小弟数据库新人,求解
2017-03-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人