自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

风清扬

大风起兮云飞扬

  • 博客(19)
  • 收藏
  • 关注

原创 剑指OFFER----把二叉树打印成多行

题目描述从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }}...

2018-04-30 13:47:42 172

原创 剑指offer----字符串的排列

class Solution {public: vector<string> Permutation(string str) { vector<string> v; if(str.size() == 0)return v; Per(v,str,0); sort(v.begin(),v.end());...

2018-04-23 19:28:28 227

原创 剑指offer----顺时针打印矩阵数组

class Solution {public: vector<int> printMatrix(vector<vector<int> > matrix) { int row = matrix.size();//规定下边界 int col = matrix[0].size();//规定右边界 ...

2018-04-23 17:05:59 239

原创 Leetcode----minmum-depth-of-binary-tree

//minmum-depth-of-binary-tree//递归深度优先class Solution {public: int run(TreeNode *root) { if(root == NULL)return 0; int l = run(root->left); int r = run(root->right)...

2018-04-23 12:29:00 206

原创 TOPK问题----代码实现打印数据中前K大的数

/*问题: 随机产生100000个整数,范围是【0,1000】,快速统计出值最大的前10个?*/#include<iostream>#include<vector>#include<queue>#include<ctime>#include<functional>using namespace std;class To...

2018-04-20 23:23:35 429

转载 GDB查看内存、函数栈、寄存器

gdb查看指定地址的内存地址的值:examine 简写 x-----使用$gdb> help x 来查看使用方式     $x/ (n,f,u为可选参数)n: 需要显示的内存单元个数,也就是从当前地址向后显示几个内存单元的内容,一个内存单元的大小由后面的u定义f:显示格式               x(hex) 按十六进制格式显示变量。               d(decimal) 按...

2018-04-14 22:45:39 4658

转载 linux服务器出现大量TIME_WAIT的解决方法

转载自:http://www.2cto.com/os/201411/355811.html近期服务器出现大量time_wait的TCP连接造成服务器连接数过多而最终导致tomcat假死状态。连接服务器查看连接数的时候提示如下。[html] view plain copy[root@test apache-tomcat-7.0.53]# netstat -n | awk '/^tcp/ {++S[$...

2018-04-14 22:17:00 993

原创 C++11----std::bind/std::placeholder

而 std::bind 则是用来绑定函数调用的参数的,它解决的需求是我们有时候可能并不一定能够一次性获得调用某个函数的全部参数,通过这个函数,我们可以将部分调用参数提前绑定到函数身上成为一个新的对象,然后在参数齐全后,完成调用。例如:#include<functional>#include<iostream>int foo(int a, int b) { return...

2018-04-13 11:38:07 2685

原创 C++11----函数对象包装器std::function

C++11 std::function 是一种通用、多态的函数封装,它的实例可以对任何可以调用的目标实体进行存储、复制和调用操作,它也是对 C++中现有的可调用实体的一种类型安全的包裹(相对来说,函数指针的调用不是类型安全的),换句话说,就是函数的容器。当我们有了函数的容器之后便能够更加方便的将函数、函数指针作为对象进行处理。例如:#include <functional>#incl...

2018-04-13 11:17:12 1215

原创 C++11----引用包装器std::ref

模板在编译的时候默认情况是不会识别传递过来的参数是一个引用:如下:#include<iostream>template<typename T>void fun(T num){ num += 100;}int main(){ int a = 0; int &ra(a); std::cout << "不使用引用包装器" << ...

2018-04-13 11:01:24 547

原创 C++11----Lambda表达式

C++11----lambda表达式Lambda 表达式是 C++11 中最重要的新特性之一,而 Lambda 表达式,实际上就是提供了一个类似匿名函数的特性,而匿名函数则是在需要一个函数,但是又不想费力去命名一个函数的情况下去使用的。这样的场景其实有很多很多,所以匿名函数几乎是现代编程语言的标配。Lambda 表达式的基本语法如下:[捕获列表](参数列表) mutable(可选) 异常属性 -&...

2018-04-12 22:58:10 181

原创 C++11----智能指针

C++11智能指针和引用计数你有什么办法解决资源泄露(内存泄露)?引入智能指针:原理: 首先它是一个指针,对裸指针(带*号的指针)用面向对象的类进行封装,所以能指向内存资源;然后它区别于一般的指针,它是智能的,而所谓的智能是指它:1.能够自动的帮你释放内存2.还能够知道什么时候释放内存才是安全的。C++中智能指针的实现主要依赖于两个技术概念:RAII技术1. 析构函数:对象被销毁时会被调用的一个函...

2018-04-12 11:56:13 228

原创 C++11---- std::condition_variable

<condition_variable>是C++标准程序库中的一个头文件,定义了C++11标准中的一些用于并发编程时表示条件变量的类与方法等,与pthread的实现语义完全一致。使用条件变量做并发控制时,某一时刻阻塞在一个条件变量上的各个线程应该在调用wait操作时指明同一个互斥锁,此时该条件变量与该互斥锁绑定;否则程序的行为未定义。条件变量必须与互斥锁配合使用,其理由是程序需要判定某...

2018-04-11 22:43:24 399

原创 linux命令之ldd命令用于打印程序或者库文件所依赖的共享库列表

ldd命令编程开发ldd命令用于打印程序或者库文件所依赖的共享库列表。语法ldd(选项)(参数)选项--version:打印指令版本号;-v:详细信息模式,打印所有相关信息;-u:打印未使用的直接依赖;-d:执行重定位和报告任何丢失的对象;-r:执行数据对象和函数的重定位,并且报告任何丢失的对象和函数;--help:显示帮助信息。参数文件:指定可执行程序或者文库。其他介绍首先ldd不是一...

2018-04-11 21:40:19 487

原创 C++11----lock_guard和unique_lock

我们在操作系统的相关知识中已经了解过了有关并发技术的基本知识,mutex 就是其中的核心之一。C++11引入了 mutex 相关的类,其所有相关的函数都放在 <mutex> 头文件中。std::mutex 是 C++11 中最基本的 mutex 类,通过实例化 std::mutex 可以创建互斥量,而通过其成员函数 lock() 可以仅此能上锁,unlock() 可以进行解锁。但是在在...

2018-04-11 20:53:14 1259

原创 简述C++中RAII

1.什么是RAII 技术?(参见百度百科相关条目)      RAII(Resource Acquisition Is Initialization)是一种利用对象生命周期来控制程序资源(如内存、文件句柄、网络连接、互斥量等等)的简单技术。   RAII 的一般做法是这样的:在对象构造时获取资源,接着控制对资源的访问使之在对象的生命周期内始终保持有效,最后在对象析构的时候释放资源。借此,我们实际上...

2018-04-11 20:46:46 228

原创 C++11----多线程之std::future, std::promise

std::future,是一个类模板,它存储着一个未来的值。那问题来了,未来的值是什么鬼?实际上一个std::future对象里存储着一个在未来会被赋值的变量,这个变量可以通过std::future提供的成员函数std::future::get()来得到。如果在这个变量被赋值之前就有别的线程试图通过std::future::get()获取这个变量,那么这个线程将会被阻塞到这个变量可以获取为止。st...

2018-04-11 20:35:16 419

原创 线程安全----互斥锁和原子变量的效率比较

多线程访问共享资源的时候需要对线程进行互斥同步操作,在C++中可以选择原子变量和C++11中的mutex互斥量对象来进行互斥操作,该文章简单对两种同步操作进行一个效率的比较。工具:VS2017环境:WINDOW7  8核CPU首先选择mutex代码如下:#include <iostream>#include <thread>#include<mutex>u...

2018-04-11 17:47:54 4001 3

原创 C++11----语言级线程库<thread>

std::thread 用于创建一个执行的线程实例,所以它是一切并发编程的基础,使用时需要包含头文件#include&lt;thread&gt;,它提供了很多基本的线程操作,例如get_id()来获取所创建线程的线程 ID,例如使用 join() 通知主线程等待其他线程退出,detach脱离主线程。例如:#include &lt;iostream&gt;#include &lt;thread&g...

2018-04-11 17:24:36 342

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除