- 博客(7)
- 收藏
- 关注
原创 C++多线程编程
C++多线程编程首先给自己提几个关于多线程编程的问题:1、单线程和多线程的区别?2、什么时候要使用多线程?3、我们知道多线程可以提高程序运行效率,那是不是线程数越多越好?4、对于3的回答一定是否定的,那么线程数到底设置成多少效率最高?5、既然我们知道创建多少个线程数是合适的,那么为什么还要搞一个线程池呢?6、创建一个线程都要做哪些事情?为什么说频繁的创建线程开销很大?7、多线程通常要注意共享变量问题,为什么局部变量就没有线程安全问题呢?那么下面就来对这些问题进行逐一的解决。1、单线程和多
2020-09-01 10:41:04
155
转载 weak_ptr智能指针的作用
转自:https://blog.csdn.net/qq_22080999/article/details/81203692weak_ptr也是一个引用计数型智能指针,但是它不增加对象的引用计数,即弱引用。与之相对,shared_ptr是强引用,只要有一个指向对象的shared_ptr存在,该对象就不会析构,直到指向对象的最后一个shared_ptr析构或reset()时才会被销毁。利用weak_ptr,我们可以解决常见的空悬指针问题以及循环引用问题。空悬指针问题什么是空悬指针?考虑以下这种情况:这
2020-08-26 17:14:24
463
原创 字节面试题MyString类的编写
MyString类的编写#include <iostream>using namespace std;class MyString{public: MyString() { str=nullptr; len=0; } MyString(char* s,int l) { len=l; str=new char[len+1]; for(int i=0;i<l;+
2020-08-24 22:24:00
204
原创 某公司笔试题背包问题
某公司笔试题背包问题#include <iostream>#include <vector>using namespace::std;int main(){ int m,n; while(cin>>m>>n){ vector<vector<int>> vec(m+1,vector<int>(n+1,0)); int att_val; for(i
2020-08-24 13:13:03
201
原创 二叉树的非递归遍历以及序列化和反序列化
#include <iostream>#include <queue>#include <stack>using namespace std;struct TreeNode{ int val; TreeNode* left; TreeNode* right; TreeNode(int x):val(x),left(NULL),right(NULL){}};//二叉树的层次遍历,非递归void LayerTraverse(Tre
2020-08-23 13:48:16
212
原创 01背包和完全背包问题
01背包和完全背包问题01背包问题描述:背包容量为T,有n件物品,每件物品只有一个,每件物品的重量为[w[1],w[2],w[3]…w[n]],每件物品对应的价值为[v[1],v[2],v[3]…v[n]],现在要求在背包容量之内,使装入背包物品的总价值最大。低阶版本:#include <iostream>using namespace std;int get_max(const int& x1,const int& x2){ return x1>
2020-08-02 10:40:39
172
原创 C++内存泄漏的各种原因
C++内存泄漏的各种原因1、new了 但是没delete;2、new了一个数组p,但是没有delete []p;3、在C++类中没有将析构函数定义成虚函数,导致在动态绑定时,派生类中非基类成员没有被正确的释放;4、在深拷贝中,拷贝赋值运算符函数中没有检查原对象成员是否为空,就直接赋值,导致原对象的指向的堆内存泄漏。待补充。。。...
2020-07-28 22:02:57
652
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人