自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

maxwell1990

To be creative, and make changes!

  • 博客(42)
  • 资源 (1)
  • 收藏
  • 关注

转载 破解IntellijIDEa

感谢作者https://blog.csdn.net/qq_40914991/article/details/85543575

2019-05-17 11:17:29 208

原创 关于string的方方面面

string表示可变长的字符序列:定义和初始化:string s1;//默认初始化string s2(s1);//s2是s1的副本string s2=s1;//等价于s2(s1)string s3("value");//字面值的副本string s4(n,'c');//n个c//容器定义和初始化,大多数可以适用于stringC c;C c1(c2);C c1=c2;C

2018-01-17 08:55:52 180

原创 关于VS下动态库和静态库

首先:对于我这种懒(智商)人(不够用)来说,凡是不能看一眼就会用的东西,都是不够人性化的,所以,为智商充值,mark一下。静态库:(暂不能科学上网,给出某科描述) 静态库是指在我们的应用中,有一些公共代码是需要反复使用,就把这些代码编译为“库”文件;在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中的这种库。动态库: 动态库又称动态链接库英文为DL

2018-01-17 08:36:37 269

转载 框架、设计模式之间的区别

框架、设计模式这两个概念总容易被混淆,其实它们之间还是有区别的。框架通常是代码重用,而设计模式是设计重用,架构则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用。在软件生产中有三种级别的重用:内部重用,即在同一应用中能公共使用的抽象块;代码重用,即将通用模块组合成库或工具集,以便在多个应用和领域都能使用;应用框架的重用,即为专用领域提供通用的或现成的基础结构,以获得最高级别的重用性。

2018-01-15 09:20:02 244

转载 关于extern "c"的用法解析(转载)

引言 C++保留了一部分过程式语言的特点,因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不同。 extern “C”的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern “C”后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。由于C++支持函数重载,因此

2018-01-03 13:16:28 275

转载 C++的各种初始化

C++的初始化有很多方式:默认初始化,值初始化,直接初始化,拷贝初始化,列表初始化。这些方式之间有什么区别与联系呢?我们一一来看。1.默认初始化默认初始化是指定义变量时没有指定初值时进行的初始化操作。例如int a; Sales_data myData;等等。这些变量被定义了而不是仅仅被声明(因为没有extern关键字修饰),而且没有显式的赋予初值。特别的,如果采用动态分配内存的方式(即采用new

2017-12-28 16:35:15 1783

原创 条款10-11:令operator=返回一个reference to *this

条款10:令operator=返回一个reference to *this,这是为了方便连续赋值,并且满足右结合律 条款11:在operator=中处理自我赋值确保对象自我赋值时operator=有着良好行为,比较来源对象和目标对象的地址、精心周到的语句顺序;以及copy-and-swap技术确保函数操作一个以上对象,而多个对象指向同一个对象时,行为仍然正确

2017-12-26 09:17:43 144

原创 条款08:别让异常逃离析构函数

析构函数绝对不能抛出任何异常,如果一个被析构函数调用的函数可能会抛出异常,析构函数应该能够捕捉任何异常,然后吞下他们(不传播),或者结束程序。 如果客户需要对某个操作函数运行期间抛出的异常作出反应,那么classe应该提供一个普通函数执行(而非析构函数)该操作列子:一个负责数据库连接的class class DBConnection{ public: ... static

2017-12-21 09:04:52 136

原创 Google编程风格指南(一):头文件相关

避免多重包含,用预编译宏 #ifndef ... #define ... ... #endif头文件命名最好以其所在项目源代码树的全路径,例如: 项目foo中的头文件foo/src/bar/baz.h #ifndef FOO_BAR_BAZ_H_ #define FOO_BAR_BAZ_H_ ... #endif 2 . 使用前置声明,

2017-12-20 08:23:16 208

原创 C++的模板

模板是C++泛型编程的基础,是编译器生成函数或者类的蓝图或者说公式定义函数模板:template <typename T>//T是模板参数,可以有一个或者多个int compare(const T& ctv1,const T &ctv2){ if(ctv1<ctv2) return -1; if(ctv2<ctv1) return 1; return 0;}实例化函数模

2017-12-08 17:28:33 258

原创 auto和decltype

auto 指定符(C++11 起): 对于变量,指定其类型将从其初始化器自动推导而出。 对于函数,指定其返回类型是尾随的返回类型或将从其 return 语句推导出 (C++14 起)。 对于非类型模板形参,指定其类型将从参数推导出。 (C++17 起) 语法auto variable initializer (1) (C++11 起)auto func

2017-12-07 11:07:54 396

转载 C++

C++ 虽然有这样那样的缺点,但是不得不说有一些精妙的小玩意让人爱不释手,为什么不考这些东西: references;RAII;smart points;move semantics;monomorphization;memory model;C++ 的特色是什么?精准的生命周期,明确的资源所有权(当然 Rust 做得更好,不论),不强行为用户钦定(说得就是钦定 GC 等)(多风格随便选,没人

2017-12-06 15:42:16 195

转载 Paul Graham:梦寐以求的编程语言

这是一篇2001年发表的博文,距今超过10年。但是,好的文章是不会随时间流逝而贬值滴。 作者 Paul Graham 是硅谷大牛。对许多问题(包括:编程技术、管理、创业)都有独到见解。 本文描绘了他心目中理想的编程语言,供大伙儿参考。 提醒一下:文中提及的“黑客”,是广义的。不要一提到黑客,就以为是网络入侵者。

2017-12-06 08:43:18 406

转载 Bruce Eckel:编程生涯

Bruce Eckel:编程生涯作者 Bruce Eckel 是编程界的大牛,著有大名鼎鼎的《Thinking in C++》和《Thinking in Java》。 本文是他对程序员(尤其是新手)的忠告

2017-12-06 08:38:38 259

转载 Peter Norvig:十年学会编程

(转载)Peter Norvig:十年学会编程作者 Peter Norvig 是计算机科学家,Google 的研究总监。 在本文中,Peter Norvig会告诉你:为什么急功近利地学习软件开发技术是没效果滴?

2017-12-06 08:30:45 231

原创 条款07:对多态基类声明虚析构函数

polymorphic(带多态性质)的base classes应该声明一个虚析构函数;如果base classes 带有任何析构函数,那么就该声明一个虚析构函数classes的设计目的如果不是作为base classes使用,或者不具备多态性质,就不应该声明虚析构函数对于多态基类,由于可能存在用基类指针指向派生类对象,并经由此基类指针delete,如果没有声明虚析构函数,就会造成只delete基类

2017-12-05 17:21:58 128

原创 条款06:对于不希望自动生成的函数就应该明确拒绝他

为了驳回编译器自动提供的技能,可将响应的函数声明为private并且不予实现,也可以使用像Uncopyable这样的baseclass/*对于你所设计的类,如果你希望每个对象独一无二只有一份,自然不希望copy构造函数或者 copy assinment构造函数,那么你就应该拒绝编译器为你自动生成,方法有以上所述的两种,*/

2017-12-05 16:15:33 120

原创 条款05:了解C++默默编写并调用那些函数

请记住:编译器可以为class创建default构造函数、copy构造函数、copy assignment 操作符,以及析构函数当C++处理之后一个空类就不再为空,如果没做任何声明,那么编译器可以为class创建default构造函数、copy构造函数、copy assignment 操作符,以及析构函数,并且所有这谢函数都是public且为inline。class E

2017-12-05 15:51:34 215

原创 关于constexpr与const

C++之父是这样解释二者的: const:大致意思是说我承诺不改变这个值,主要用于说明接口,这样变量传递给函数就不担心变量会在函数内被修改了编译器负责确认并执行const的承诺。 constexpr:大致意思是在编译时求值,主要用于说明常量,作用是允许数据置于只读内存以及提升性能。按照这种说法,我的理解是const大多用于接口中,声明不对传入的参数做修改,而constexpr多用于编译

2017-12-05 14:23:28 11189 1

原创 条款04:确定对象被使用前已经先被初始化

为内置类型对象手工初始化,因为C++不保证初始化他们构造函数最好使用构造函数初始值列表,而不要在构造函数体内使用赋值操作,初值列列出的成员变量其次序应该与类中声明次序相同为了免除‘’跨编译单元之初始化次序‘’问题,请以local static对象替换non-local static对象读取未初始化值会导致不明确行为:int x;在不同位置会出现不同行为,对于内置类型来说,如果在全局作用域声明,

2017-12-04 10:22:39 259

原创 解决Microsoft Teredo Tunneling Adapter >>>這個裝置無法啟動。 (代碼 10)

在左下方開始點一下搜尋:regedit 2 . 點HKEY_LOCAL_MACHINE 點SYSTEM 點CurrentControlSet 點services 點TCPIP6 點Parameters DisabledComponents右鍵修改 點選 十進位(D) 數值資料(V):輸入 0 原本:8e 按確定 關掉視窗 重新開機

2017-12-01 15:16:02 18029 3

原创 条款03:尽可能使用const

将某些东西声明为const可以帮助编译器发现错误;const可以施加于任何作用域内的对象、函数参数、函数返回类型、成员函数本体编译器强制实行bitwise constness(物理常量性),而我们的程序应该坚持逻辑常量性(conceptual constness)当const、non-const成员函数有实质相同的实现的时候,可以用non-const版本调用const版本从而便面代码重复

2017-12-01 15:13:03 164

转载 驴得水有感

每个曾经特立独行的人,都抛弃了曾经的自己。 每个曾经想改变中国的人,都被中国所改变。 今晚看了《驴得水》,一部被噎得说不出话的片子。 电影故事的情节很简单,几个心怀梦想的教师,为了改变当时中国落后愚昧的环境,来到了一个缺水的乡村,他们养了一头驴挑水,可是教育部不同意出养驴的钱,于是校长将这头驴虚报成了一名叫「吕得水」的老师,用虚假身份老师的工资来养驴;最后教育部的特派员来视察的时候,大家

2016-12-19 22:34:19 920

原创 c++点滴

数组名作为函数参数传递时自动退化为指针: int Getsize(int data[]) { return sizeof(data);//得到结果是4:一个指针的大小 }int _main(int argc, _TCHAR * argv[]) { int data1[]={1,2,3,4,5}; int size1=sizeof(data1);//得到2

2016-12-19 22:29:15 260

原创 Linux文件与目录管理

7.1目录(directory)与路径7.1.1相对路径与绝对路径7.1.2目录的相关操作 比较特殊的目录: . 代表此层目录 .. 代表上一层目录-代表前一个工作目录 ~代表目前用户身份所在的主文件夹 ~acount 代表acount这个用户的主文件夹(acount是账户名称)常见处理目录的命令: cd: 切换目录 change dir

2016-11-05 20:52:12 178

原创 c++ primer--第七章 类

c++中使用类定义自己的数据类型。 数据抽象帮助将对象的具体实现与对象能执行的操作分离开来 类的基本思想是数据抽象和封装。 数据抽象是一种依赖于接口和实现分离的编程技术类的接口包括用户所能执行的操作;类的实现包括类的数据成员、负责接口实现的函数体以及定义类所需的各种私有函数封装实现了类的接口和实现的分离类要实现数据抽象和封装,必须首先定义一个抽象数据类型7.1定义抽象数据类型

2016-11-02 15:42:20 409

转载 剑指offer62题序列化二叉树

void Serialize(BinaryTreeNode* pRoot, ostream& stream) { if(pRoot == NULL) { stream << “$,”; return; }stream << pRoot->m_nValue << ',';Serialize(pRoot->m_pLeft, strea

2016-10-31 10:07:14 232

原创 c++ primer--第六章 函数

函数是一个命名了的代码块,可以重载函数,也就是同一个名字对应不同的函数 6.1函数基础 返回类型 、函数名 、 0个或者多个形参列表 、函数体 我们通过调用运算符来执行函数,函数调用完成两项工作:一是用实参初始化函数对应的形参,二是将控制权转移给被调用函数;执行函数第一步是定义并初始化形参;遇到一条return语句时结束函数;return语句也完成两项工作:一是返回return语句中的值,

2016-10-30 11:57:02 210

原创 Linux 文件权限与目录配置(有机会可以挑战FHS英文官方文档来加深你对目录了解)

*Linux最优秀的地方在于多用户多任务环境;为了让各个用户具有较保密的文件数据.文件权限管理就比较重要了 6.1 用户与用户组 6.2.2改变文件属性与权限 * chgrp:改变文件所属用户组change group chgrp [-R] 用户组名 文件或目录 * chown:改变文件所属用户change owner(用户必须是存在与系统内的账户,也就是在etc/passwd中有

2016-10-29 01:18:28 546

原创 C++primer 语句

可以在if switch while for 语句的控制结构内定义变量。定义在控制结构当中的变量只在相应语句内部可见,一旦语句结束,变量也就超出其作用范围了控制结构定义的对象的值马上使用所以必须初始化 switch语句提供了一条便利的途径使得我们能偶在若干固定选项中做出选择。case标签必须是整形常量表达式 **如果在某处带有一个初始值的变量位于作用于之外,在另一处该变量位于作用域之内,则从

2016-10-28 17:43:38 217

原创 c++primer第四章 表达式

左值、右值: 当一个对象被当做右值的时候使用的是对象的值(内容),当对象被用作左值的时候用的是对象的身份(内存); 原则:在使用右值的地方可以用左值代替,但是不能把右值当成左值(也就是位置)使用。当一个左值被用工作右值时,实际上使用的是她的内容(值)。 1.赋值运算需要一个左值作为左侧运算对象,得到结果仍然是左值 2. 取地址符作用于一个左值对象,返回一个指向该对象的指针,这个指针是右值

2016-10-28 01:22:02 324

原创 Linux初识第六天

man page 与info page 1.whatis相当于man-f,apropos相当于man-k后面都是跟命令或者是数据 2.不要背命令,记住几个主要的命令,用man查询,tab补全命令等 ![man page的几个部分] 代号 代表内容 1 用户在shell环境中可以操作的命令或可执行文件 2 系统内核可调用的函数与工具 3 一些常用的函数与函数库,大部分为C函

2016-10-26 21:34:01 647

原创 linux初识 第五天

Linux使用了异步的磁盘/内存数据传输模式Linux是多人多任务环境ctrl+alt+F1~F6:文字界面tty1~tty6终端,返回是ctrl+alt+F7;TAB键:接在一串命令的第一个命令之后,则为命令补全接在一串命令的第二个命令之后,则为文件补齐crl+c结束当前程序的运行 man查询数字代表的内容: 查找方法 man man; 1 用户命令, 可由任何人启动的2 系统调用

2016-10-25 21:05:18 217

原创 剑指offer第七部分

构造函数初始化列表中成员变量初始化顺序取决于声明顺序而不是初始化列表顺序 * 做题之前,考虑清楚输入是否合法,字符串是否为空,边界检查是否越界,考虑特殊输入测试,三种抛出异常的方法以及各自的优缺点: * 功能测试(整数、负数、0) * 边界测试(最大正数,最小负数) * 特殊输入测试(输入字符串是否为空、非数字、null) ` enum ststus{valid=0,invalid};

2016-10-25 14:36:53 177

原创 c++primer 第三章数组 string vector

命名空间的using声明使用using格式:   using namespace::name;   example:    using std::cin; 头文件不应包含using声明3.2 string 3.2.1 定义和初始化 方式: string s1;//默认初始化,其为一个空串 string s2=s1; string s3(s1);

2016-10-25 08:56:42 259

转载 补码原码反码

一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.1、机器数一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1.比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是00000011。如果是 -3 ,就是 10000011 。那么,这里的 00000011 和 10000011

2016-10-24 11:37:28 381

原创 C++ primer 第二章

学习一门编程语言要理解语法特征的实现细节 * 内置类型 * 变量 用来为对象命名 * 表达式和语句 操纵上述数据类型 * if while 控制结构 * 函数 * 扩充:两种机制* 1. 程序员自定义数据类型 2. 封装成库函数供程序员调用 C++是静态数据类型语言,类型检查发生在编译时 数据类型是程序的基础:他告诉我们数据的意义和可以执行的操作基本内置类型2.1

2016-10-24 11:04:47 377

原创 linux如何学习——要怎么收获就怎么栽

2.1 企业环境的利用网络服务器: 这是Linux当前最热门的应用 关键任务的应用:如金融数据库 大型企业网管环境 学习文字界面而不是图形界面// 命令行模式是学习的不二方式 重点在solution的学习 /var/log 里面存有log file 遇到问题: http://phorum.study-area.org http://www.linux.org.cn/CLD

2016-10-19 18:55:41 352

原创 linux初识之 linux是什么

linux 诞生1991 linux Torvalds在386计算机b机写出来的 1.1 linux是什么? 她是一个提供一整组系统调用接口的操作系统 一般的操作系统只能在相应的计算机上安装,比如windows装在x86个人计算机上,而mac装在相应机器上;但是linux具有可移植性 1.2linux之前unix的历史 小知识: 查看已经安装的软件:dpkg -l 查看安装位置, 例

2016-10-18 14:47:58 269

原创 剑指offer--丑数

关于时间效率和空间效率的平衡对于N个无序数字可以用哈希表实现O(1)时间查找对于ASCII码来说只有256个字符所用空间只需1K 题目:我们把只包含因子2,3和5的数称作为丑数。求按从小到大的顺序的第1500个丑数。例如6,8都是丑数,但是14不是,因为它包含因子7。习惯上我们把1作为第一个丑数。思路:用空间换时间,创建数组保存已经找到的丑数 每一个丑数都是前面的丑数乘以2、3、5得到

2016-10-17 12:47:15 228

空空如也

空空如也

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

TA关注的人

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