- 博客(31)
- 资源 (4)
- 收藏
- 关注
原创 设计模式六大原则
1、开闭原则(Open Close Principle)2、里氏代换原则(Liskov Substitution Principle)3、依赖倒转原则(Dependence Inversion Principle)4、单一职责原则(Single Responsibility Principle)5、迪米特法则(Demeter Principle)6、接口隔离原则(Interface Se...
2019-08-24 11:46:59
174
原创 插入排序
public static int[] insertionSort(int nums) { for (int i = 0; i < nums.length; i++) { for (int j = i; j > 0; j--) { if (nums[j] < nums[j - 1]) { int tmp = nums[j - 1]; nums[j - ...
2019-05-11 14:51:26
176
原创 选择排序
private int[] selectSort(int[] nums) { int length = nums.length; for (int i = 0; i < length; i++) { for (int j = i; j < length; j++) { if (nums[j] < nums[i]) { int tmp = nums[i]; ...
2019-05-10 22:54:06
135
原创 Linux下创建守护进程
引自:Creating a daemon in Linux - Pascal Werkl/* * daemonize.c * This example daemonizes a process, writes a few log messages, * sleeps 20 seconds and terminates afterwards. */#include <stdlib.h>#in
2018-05-02 18:40:43
262
原创 Linux下安装opencv
官方文档sudo apt install git cmake libavcodec-dev libavformat-dev libswscale-devgit clone -b 3.4 https://github.com/opencv/opencv.gitcd opencvmkdir buildcd buildcmake -D CMAKE_BUILD_TYPE=RELEA...
2018-04-23 12:20:06
543
原创 搭建TensorFlow环境
TensorFlow GitHub克隆TensorFlow仓库$ sudo apt install git$ git clone --recurse-submodules https://github.com/tensorflow/tensorflow.git安装BazelGetting Started with Bazel Ubuntu Linux Compil...
2018-03-30 22:47:23
268
原创 宏定义转字符串
#include <stdio.h>#define ZERO "0"#define ONE 1#define STR1(R) #R#define STR2(R) STR1(R)int main(){ printf("%s\n", ZERO); printf("%s\n", STR1(ZERO)); printf("%s\n", ST...
2018-03-30 21:27:05
1905
原创 g++: internal compiler error: Killed (program cc1plus)
g++: internal compiler error: Killed (program cc1plus) Please submit a full bug report, with preprocessed source if appropriate.内存不足,增加交换分区。$ sudo dd if=/dev/zero of=/home/swap bs=64M count=16...
2018-03-10 12:29:30
798
原创 vim配置
$ sudo apt-get install vim-gtk$ vi ~/.vimrcset nuset tabstop=4set autoindentset ignorecasesyntax on
2018-03-09 19:12:26
203
原创 直接初始化和拷贝初始化
string dots(10, '.'); // 直接初始化string s(dots); // 直接初始化string s2 = dots; // 拷贝初始化string null_bock = "9-999-99999-9"; // 拷贝初始化string nines
2018-01-22 23:17:31
395
转载 拷贝构造函数什么时候调用?
1当用类的一个对象初始化该类的另一个对象时.例如:int main(){ point A(1,2); point B(A);//用对象A初始化对象B,拷贝构造函数被调用.}2 如果函数的形参是类的对象,调用函数时,进行形参和实参结合时. void f(point p){}main(){ point A(1,2); f(A);//函数的形参为类
2018-01-22 22:54:43
471
原创 拷贝构造函数
如果一个构造函数的第一个参数是自身类型的引用,且任何额外参数都有默认值,则此构造函数是拷贝构造函数。class Foo {public: Foo(); // 默认构造函数 Foo(const Foo&); // 拷贝构造函数 // ...}; 拷贝构造函数的第一个参数必须是一个引用类型。
2018-01-22 22:53:42
191
转载 C++ explicit关键字详解
首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式).那么显示声明的构造函数和隐式声明的有什么区别呢? 我们来看下面的例子:class CxString // 没有使用explicit关键字的类声
2018-01-22 22:38:20
181
转载 C++中iostream.h和iostream的区别
#include 非标准输入输出流 #include 标准输入输出流C++中为了避免名字定义冲突,特别引入了“名字空间的定义”,即namespace。 1,当代码中用时,输出可直接引用cout继承C语言的标准库文件,未引入名字空间定义,所以可直接使用。 2,当代码中引入时,输出需要引用std::cout使用时,引入std::有以下方法:1. using namespace std
2018-01-22 22:22:30
426
原创 java静态内部类单例模式
public class Singleton { /** * 类级的内部类,也就是静态的成员式内部类,该内部类的实例与外部类的实例 * 没有绑定关系,而且只有被调用到才会装载,从而实现了延迟加载 */ private static class SingletonHolder { /** * 静态初始化器,由JVM来保
2018-01-19 10:10:52
559
原创 交叉编译bluez-5.47
编译zlib-1.2.11# CC=arm-none-linux-gnueabi-gcc ./configure --prefix=/usr/local/bluez-5.47# make# make install编译expat-2.1.0# ./configure --prefix=/usr/local/bluez-5.47 --host=arm-none-linux-g...
2018-01-12 12:46:04
1573
转载 特殊数据类型成员变量的初始化
有些成员变量的数据类型比较特别,它们的初始化方式也和普通数据类型的成员变量有所不同。这些特殊的类型的成员变量包括: a. 常量型成员变量 b. 引用型成员变量 c. 静态成员变量 d. 整型静态常量成员变量 e. 非整型静态常量成员变量对于常量型成员变量和引用型成员变量的初始化,必须通过构造函数初始化列表的方式进行。在构造函数体内给常量型成员变量和引用型成员变量赋值的方式是行不通的。
2018-01-11 23:08:39
406
原创 linux相关命令
查看内核版本: $ uname -r 4.10.0-42-generic查看cpu位数: $ getconf LONG_BIT 64查看硬盘和分区: $ df -h
2018-01-10 18:19:46
172
转载 C++的static关键字
C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。一、面向过程设计中的static1、静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下://Example 1#include <iostream.h>
2018-01-09 22:44:08
199
原创 前置声明
前置声明(forward declaration)。 a.hclass A {private: int i;};b.hclass A;class B {private: A a;};
2017-12-31 00:22:26
430
原创 类的大小
class A {};//sizeof(A)大小为1这里为什么是1?如果是0的话,在创建对象 A a; int i; 时,i和a的地址相同,操作i的地址会影响a。所以,该值为1。class A {private: int i;};//sizeof(A)大小为4class A {private: int i; char c; int *pi;};
2017-12-27 23:57:07
489
原创 extern关键字
extern是计算机语言中的一个关键字,可置于变量或者函数前,以表示变量或者函数的定义在别的文件中。提示编译器遇到此变量或函数时,在其它模块中寻找其定义,另外,extern也可用来进行链接指定。栗子:a.h#ifndef A_H#define A_Hchar c[] = "hello"; //定义全局变量c#endifb.cpp#include <stdio.h>#include "a.h"e
2017-12-23 17:37:14
202
原创 内联函数inline
内联函数是指用inline关键字修饰的函数。在类内定义的函数被默认成内联函数。内敛函数从源代码层看,有函数的结构,而在编译后却不具备函数的性质。 内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处。编译时,类似宏替换,使用函数体替换调用处的函数名。一般在代码中用inline修饰,但是能否形成内敛函数,需要看编译器对该函数定义的具体处理。 内联扩展是用来消除函
2017-12-23 14:57:43
289
原创 指针的大小
打印sizeof(char *)、sizeof(int *)、sizeof(long *)、sizeof(double *),你会发现打印的值都相等。因为指针存放的是地址,所以它们的大小是固定的。指针大小与cpu、系统、编译器有关,由它们中位数最小的那个决定。
2017-12-20 00:34:49
481
原创 const int *p与int *const p
引自《C++ Primer》第5版 指针本身是不是常量以及指针所指的是不是一个常量是两个相互独立的问题。用名词顶层const(top-level const)表示指针本身是个常量,而用名词底层const(low-level const)表示指针所指的对象是一个常量。 当执行对象的拷贝操作时,常量是顶层const还是底层const区别明显。其中,顶层const不受什么影响:执行拷贝操作并不会
2017-12-19 00:06:02
374
交叉编译bluez-5.47
2018-01-12
android&opencv;提取
2017-11-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人