自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xupeng1644的博客

道阻且长,行则将至!

  • 博客(86)
  • 资源 (8)
  • 收藏
  • 关注

原创 46. 求1+2+3+...+n(C++实现)

题目:求1+2+3+…+n,要求不能使用乘除法、for、while、else、switch、case等关键字及条件判断语句(A?B:C)。代码实现:1.构造函数法class OneClass{public: OneClass() { ++m_objectTotalCount; m_totalSum += m_objectTotalCount; } static ...

2019-12-31 13:10:50 1919

原创 04. 替换空格(C++版本)

题目:请实现一个函数,把字符串中的每个空格替换成“%20"。例如输入"We are happy", 则输出"We%20are%20happy"。代码实现:void ReplaceBlankWithSpecialChar(char* pData, int size){ if (nullptr == pData || size < 1) return; int useSize ...

2019-12-30 20:50:34 1360

原创 MySQL 字段操作命令

实验表为tt:CREATE TABLE tt( a INT NOT NULL, b INT NOT NULL, c INT NOT NULL, PRIMARY KEY(a), UNIQUE uni_b(b), INDEX idx_c(c));显示表结构:mysql> show create table tt;+-------+-------------------...

2019-12-30 17:56:12 1373

原创 45. 圆圈中最后剩下的数字

题目:0, 1, …, n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字,求出这个圆圈里面剩下的最后一个数字。代码实现:int GetLastRemainData(int n, int m){ if (n < 2 || m < 1) return -1; std::list<int> datas; for (int curData...

2019-12-30 13:29:50 1281

原创 44. 扑克牌的顺子(C++版本)

题目:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2-10为数字本身,A为1, J为11, Q为12, K为13, 而大王、小王可以看成任意数字。实现代码:bool IsContinusCards(int* pData, int size){ if (nullptr == pData || size != 5) return false; std::sor...

2019-12-30 13:08:26 1894

转载 MySQL 浅谈NOT NULL和DEFAULT的关系

MySQL在建表时,需要有字段名称、字段类型和约束条件,其中字段名称和字段类型是必填的,约束条件是选填的,约束条件主要有primary key、unique、not null、default等, 一个完整的建表语句如下:create table employees( 工号 varchar(4) primary key, 姓名 varchar(10) not null , 年龄 int defal...

2019-12-30 10:49:06 7146

转载 MySQL 时间戳(TimeStamp)自动更新

Mysql中时间戳自动更新 Mysql时间戳字段更新TimeStamp是Mysql中的时间戳字段,这个字段可以支持自动添加和更新。转自[https://www.cnblogs.com/zhaoyanghoo/p/5581710.html]1.概述在我们设计表的时候,考虑将行数据的创建时间和最后更新时间记录...

2019-12-30 10:30:01 2052

转载 MySQL 高性能索引策略和查询优化

高性能索引策略独立的列如果查询的列不是独立的,则MySQL就不会使用索引。“独立的列”是指索引列不能是表达式的一部分,也不能是函数的参数。前缀索引和索引选择性1.最左前缀匹配原则,非常重要的原则,mysql会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配,比如a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,...

2019-12-27 17:02:08 1389

转载 MySQL 索引最左匹配原则的理解

创建表create table test(a int ,b int,c int,d int,key index_abc(a,b,c))engine=InnoDB default charset=utf8;插入 10000 条数据DROP PROCEDURE IF EXISTS proc_initData;DELIMITER $CREATE PROCEDURE proc_in...

2019-12-27 11:56:16 1255

转载 MySQL 大数据量分页性能优化

mysql大数据量使用limit分页,随着页码的增大,查询效率越低下。直接用limit start, count分页语句, 也是我程序中用的方法:select * from product limit start, count当起始页较小时,查询没有性能问题,我们分别看下从10, 100, 1000, 10000开始分页的执行时间(每页取20条), 如下:select * from p...

2019-12-26 19:51:44 1354

转载 MySQL建表规范与常见问题

表设计库名、表名、字段名必须使用小写字母,“_”分割。库名、表名、字段名必须不超过12个字符。库名、表名、字段名见名知意,建议使用名词而不是动词。建议使用InnoDB存储引擎。存储精确浮点数必须使用DECIMAL替代FLOAT和DOUBLE。建议使用UNSIGNED存储非负数值。建议使用INT UNSIGNED存储IPV4。整形定义中不添加长度,比如使用INT,而不是INT(4)...

2019-12-26 19:05:33 1568

原创 42.翻转单词顺序 VS 左旋转字符串(C++版本)

题目一:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字符一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。实现代码:void Reverse(char* pBegin, char* pEnd){ if (nullptr == pBegin || nullptr == pEnd) ret...

2019-12-26 16:04:35 1420

原创 41. 和为s的两个数字VS和为s的连续正数序列(C++版本)

题目一:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得他们的和正好是s。如果有多对数字的和等于s,输出任意一对即可。实现代码:bool GetTwoNumWithDestSum(int* pData, int size, int destData, int& num1, int& num2){ if (nullptr == pData || size &...

2019-12-26 13:52:09 1353

原创 40. 数组中只出现一次的数字(C++版本)

实现代码:int GetIdxOfFirst1AtData(int curData){ int curIdx = 0; const int maxIdx = 32; while (curIdx != maxIdx) { if (0 == curData & 0x01) return curIdx; ++curIdx; curData >> 1; }...

2019-12-25 14:45:42 1699

原创 39. (附加)二叉树是不是平衡二叉树(C++版本)

基础版本:int GetBinaryTreeDepth(BinaryTreeNode* pRoot){ if (nullptr == pRoot) return 0; int leftTreeDepth = pRoot->pLeft != nullptr ? GetBinaryTreeDepth(pRoot->pLeft) : 0; int rightTreeDepth =...

2019-12-25 11:10:10 1255

原创 39. 二叉树的深度(C++版本)

实现代码:int GetBinaryTreeDepth(BinaryTreeNode* pRoot){ if (nullptr == pRoot) return 0; int leftTreeDepth = pRoot->pLeft != nullptr ? GetBinaryTreeDepth(pRoot->pLeft) : 0; int rightTreeDepth =...

2019-12-25 10:44:11 1246

原创 38. 数字在排序数组中出现的次数(C++版本)

实现代码:int GetFirstPosOfDestData(int* pData, int size, int destData, int begin, int end){ if (nullptr == pData || size < 1) return -1; if (begin > end) return -1; // 未找到 int middle = begin +...

2019-12-25 09:55:54 1370

原创 37. 两个链表的第一个公共节点(C++版本)

实现代码:int GetListLength(ListNode* pHead){ if (nullptr == pHead) return 0; int listLen = 0; ListNode* pCurNode = pHead; while (pCurNode != nullptr) { ++listLen; pCurNode = pCurNode->pNext...

2019-12-24 19:42:46 1345

转载 MySQL 开启慢查询日志

开启 MySQL 慢查询日志开启mysql的慢查询日志,可以记录查询超过指定时间的sql语句,可以方便更好的优化数据库系统的性能。一、参数说明slow_query_log: 慢查询日志开启状态slow_query_log_file: 慢查询日志存放位置long_query_time: 查询超过多少秒才记录二、设置步骤1、查询相关参数配置mysql> show variab...

2019-12-24 11:50:34 1296

转载 MySQL 58到家数据库30条军规解读

基础规范1 必须使用InnoDB存储引擎解读:支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高2 必须使用UTF8字符集解读:万国码,无需转码,无乱码风险,节省空间3 数据表、数据字段必须加入中文注释解读:N年后谁tm知道这个r1,r2,r3字段是干嘛的4 禁止使用存储过程、视图、触发器、Event解读:高并发大数据的互联网业务,架构设计思路是“解放数据库C...

2019-12-24 11:31:39 1380

原创 35. 第一个只出现一次的字符(C++版本)

char GetFirstNotRepeatChar(char* pData){ if (nullptr == pData) return '\0'; const int TEMP_DATA_SIZE = 256; int tempDatas[TEMP_DATA_SIZE]; // 用来存储字符出现的次数 std::memset(tempDatas, 0, sizeof(int) * ...

2019-12-23 17:50:41 1305

原创 34. 丑数(C++版本)

基础版本:bool IsUglyNum(int64_t data){ int64_t curData = data; while (curData % 2 == 0) curData /= 2; while (curData % 3 == 0) curData /= 3; while (curData % 5 == 0) curData /= 5; return 1 == curDa...

2019-12-23 15:33:36 1431

原创 33. 把数组排成最小的数(C++版本)

实现要点:将数组按照特定规则排序,依次组合起来就是最小的数。排序规则为 A + B < B + A时为true。代码实现:std::string GetMinNumber(const std::vector<int>& datas){ if (datas.empty()) return ""; std::vector<std::string> ...

2019-12-23 11:28:24 1543

原创 40. Use multiple inheritance judiciously

明智而审慎地使用多重继承多重继承只是面向对象工具箱里面的一个工具而已。和单一继承比较,它通常比较复杂,使用上也比较难以理解,所以如果有一个单一继承的设计方案,而它大约等价与一个多重继承设计方案,那么单一继承设计方法几乎比较受欢迎。如果你唯一能够提出的设计方案涉及多重继承,应该更努力想一想-几乎可以说一定会有某些方案让单一继承行得通。然而多重继承有时候的确是完成任务值最简洁、最易维护、最合理的...

2019-12-20 16:40:41 1338

转载 MySQL 随机获得一条数据的方法

 最近由于需要大概研究了一下MYSQL的随机抽取实现方法。举个例子,要从tablename表中随机提取一条记录,大家一般的写法就是:SELECT * FROM tablename ORDER BY RAND() LIMIT 1。       但是,后来我查了一下MYSQL的官方手册,里面针对RAND()的提示大概意思就是,在ORDER BY从...

2019-12-20 15:26:28 4118 5

转载 MySQL IS NULL(IS NOT NULL)使用索引分析

简介mysql的sql查询语句中使用is null、is not null、!=对索引并没有任何影响,并不会因为where条件中使用了is null、is not null、!=这些判断条件导致索引失效而全表扫描。mysql官方文档也已经明确说明is null并不会影响索引的使用。MySQL can perform the same optimization on col_name IS...

2019-12-19 17:54:03 5343 3

原创 30. 最小的K个数(C++版本)

基于Partition的方法:int Partition(int* pData, int begin, int end){ int pivot = pData[begin]; // 以第一个元素作为基准值 int left = begin; int right = end; while (left < right) { while (left < right &...

2019-12-19 16:21:28 1440

原创 29. 数组中出现超过一半的数字(C++版本)

两种方法,找到具体值之后,均没有进行值得判断(是否出现次数超过一半)。1. 中位数法int Partition(int* pData, int begin, int end){ int pivot = pData[begin]; // 以第一个元素作为基准值 int left = begin; int right = end; while (left < right) {...

2019-12-19 15:15:23 1479 1

原创 MySQL error(2014) Commands out of sync; you can't run this command now(情形2)

使用connect函数连接数据库时使用设置选项CLIENT_MULTI_STATEMENTS后,可以一次执行多条通过;分割的sql语句。需要要注意的是:即使执行的是不会返回结果集的两条update语句,依旧需要对结果集进行处理。否则,在之后的sql语句执行中,进行报错:MySQL error(2014) Commands out of sync; you can't run this com...

2019-12-19 14:19:50 1561

原创 28. (附加)字符串的组合(C++版本)

实现代码:加粗样式void Conbination(char* pData, char* pDestData, int begin, int end, int curIdx, int remainCount){ if (0 == remainCount) { std::cout << pDestData << std::endl; return; }...

2019-12-18 17:56:29 1792

原创 28. 字符串的排列(C++版本)

实现代码:void Permutation(char* pInitData, char* pCurData){ if ('\0' == *pCurData) // 已经处理完毕 { std::cout << pInitData << std::endl; return; } for (char* pData = pCurData; *pData != ...

2019-12-18 16:44:26 1247

转载 MySQL 优化技巧

MySQL优化三大方向:1 优化MySQL所在服务器内核(此优化一般由运维人员完成)。2 对MySQL配置参数进行优化(my.cnf)此优化需要进行压力测试来进行参数调整。3 对SQL语句以及表优化。MySQL参数优化:1 MySQL 默认的最大连接数为 100,可以在 mysql 客户端使用以下命令查看mysql> show variables like 'max_connec...

2019-12-18 11:11:51 1351

转载 MySQL 表分区功能详解

1 什么是表分区?mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可以通过my.cnf中的datadir来查看),一张表主要对应着三个文件,一个是frm存放表结构的,一个是myd存放表数据的,一个是myi存表索引的。如果一张表的数据量太大的话,那么myd,myi就会变的很大,查找数据就会变的很慢,这个时候我们可以利用mysql的分区功能,在物理上将这一张表...

2019-12-18 10:57:51 1405

转载 MySQL 千万级数据SQL的查询优化30条总结

1 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2 应尽量避免在 where 子句中对字段进行null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t wh...

2019-12-17 18:11:54 1226

转载 MySQL 脏页刷新到磁盘的过程

mysql脏页刷新到磁盘的过程 ...

2019-12-17 16:51:49 2104 1

转载 MySQL 刷脏页问题

Mysql的刷脏页问题 平时的工作中,不知道你有没有遇到过这样的场景,一条 SQL 语句,正常执行的时候特别快,但是有时也不知道怎么回事,它就会变得特别慢,并且这样的场景很难复现,它不只随机,而且持续时间还很短。当内存数据页跟磁盘数据页内容不一致的时候,我们称这个内存页为“脏页”。内存数据写入到磁盘后,内存...

2019-12-17 16:39:02 1554

原创 39. Use private inheritance judiciously

明智而审慎地使用private继承请记住:Private继承意味is-implemented-in-terms of(根据某物实现出)。它通常比复合(composition)的级别低。但是当derived class需要访问protected base class的成员,或需要重新定义继承而来的virtual函数时,这么设计是合理的。和复合(composition)不同,pr...

2019-12-17 14:49:18 1294

原创 25. (附加)二叉树的所有路径(C++版本)

使用二叉树的相关定义及函数在:二叉树最小结构(C++版本)注意点:找到的是从根节点到叶子节点的所有路径。实现代码:void FindPath(BinaryTreeNode* pRoot, int destData){ if (nullptr == pRoot) return; std::vector<int> paths; FindPath(pRoot, paths,...

2019-12-17 13:43:26 1386

原创 25. 二叉树中和为某一个值的路径(C++版本)

使用二叉树的相关定义及函数在:二叉树最小结构(C++版本)注意点:找到的是从根节点到叶子节点的路径。实现代码:void PrintData(std::vector<int>& paths){ for (auto& curData : paths) std::cout << curData << " "; std::cout <...

2019-12-17 13:21:05 1450

原创 24. (附加)二叉搜索树的前续遍历序列(c++版本)

使用二叉树的相关定义及函数在:二叉树最小结构(C++版本)注意点:假设左子树小于等于根节点,右子树大于根节点。实现代码:bool IsPreOrder(int* pData, int begin, int end){ if (nullptr == pData || begin < 0 || end < 0) return false; if (begin > end...

2019-12-17 11:36:48 1335

C++14标准.rar

C++14标准文档,共9页,带书签!!! 包括返回值类型推导、泛型lambda表达四、constexpr等主要的更新!!!

2019-08-21

Essential C++ 中文版 封面最新版 内容清晰 带目录

该书是电子工业出版社博文视点栏目出版的传世经典书丛系列, 出版于2013年。 该pdf是绝对的最新版的,绝对不是老版。 如果是老版的,请骂我!!! 请注意该pdf大小:52.88M!

2018-11-08

Effective C++ 中文版 第三版 带目录 清晰

《Effective C++:改善程序与设计的55个具体做法》(中文版)(第3版)一共组织55个准则,每一条准则描述一个编写出更好的C++的方式。每一个条款的背后都有具体范例支撑。第三版有一半以上的篇幅是崭新内容,包括讨论资源管理和模板(templates)运用的两个新章。为反映出现代设计考虑,对第二版论题做了广泛的修订,包括异常(exceptions)、设计模式(design patterns)和多线程(multithreading)。 《Effective C++》的重要特征包括: ·高效的 classes、functions、templates 和inheritance hierarchies(继承体系)方面的专家级指导。 ·崭新的 TR1 标准程序库功能应用,以及与既有标准程序库组件的比较。 ·洞察 C++和其他语言(例如Java、C#、C)之间的不同。此举有助于那些来自其他语言阵营的开发人员消化吸收 C++ 式的各种解法。

2018-11-06

提高C+性能的编程技术 中文版 带目录 清晰封面最新版

很多程序员及软件设计师都认为,用c++开发意味着放弃程序性能提升的可能。在很多人眼里,使用c++来开发那些效率至上的应用无疑将导致一场空前的浩劫。因此,在许多性能敏感型领域,诸如网络协议、操作系统内核、移动设备驱动等等,c++都常常处于被冷落的境地。 而本书正是对这种错误观念的最有力回击。《提高c++性能的编程技术》揭示了c++开发高效应用的潜力,向广大读者展示了大量实用的c++面向对象编程技术。通过改善普遍藏匿于设计编码过程暗处的缺陷,这些技术无一不为c++的性能提升带来最为强劲的动力。 《提高c++性能的编程技术》详细讨论了临时对象、内存管理、继承、虚函数、内联、引用计数以及stl等一切有可能提升c++效率的细节内容。最终,该书将c++性能提升的各种终极利器,完美地呈现在广大读者的面前!无论你是相关领域的从业人员,还是c++程序设计爱好者,或者是渴望突破编程瓶颈、大幅提升自我修为的程序设计爱好者,本书都必将使你获益良多。

2018-11-06

Effective STL 中文版 带目录 封面是老版内容无差别

STL是C++标准库的一部分。本书是针对STL的经验总结,书中列出了50个条款,绝大多数条款都解释了在使用STL时应该注意的某一个方面的问题,并且详尽地分析了问题的来源、解决方案的优劣。

2018-11-02

More Effective C++中文版(封面绝对是最新版)(带目录)

继Effective C++之后,Scott Meyers于1996推出这本“续集”。条款变得比较少,页数倒是多了一些,原因是这次选材比“第一集”更高阶,尤其是第5章。Meyers将此章命名为技术(techniques),并明白告诉你,其中都是一些patterns,例如virtual constructors,smart pointers,reference counting,proxy classes,double dispatching……这一章的每个条款篇幅都达15~30 页之多,实在让人有“山重水复疑无路,柳暗花明又一村”之叹。   虽然出版年代稍嫌久远,但本书并没有第2版,原因是当其出版之时(1996),C++ Standard已经几乎定案,《More Effective C++:35个改善编程与设计的有效方法(中文版)》即依当时的标准草案而写,其与现今的C++ 标准规范几乎相同。而且可能变化的几个弹性之处,Meyers也都有所说明与提示。读者可以登录作者提供的网址,看看上下两集的勘误与讨论(数量之多,令人惊恐。幸好多是技术讨论或文字斟酌,并没有什么重大误失)。   读者对象:程序设计学习者和在职开发人员。

2018-10-29

Exceptional C++中文版 绝对清晰带目录

《Exceptional C++中文版》通过示例的方式来讲述如何用标准C++进行的软件开发。您是否喜欢解决一些复杂的难题?是否喜欢编写健壮的和可扩展的代码?那么您可以花几分钟的时间来研究一些很难的C++设计问题和编程问题。

2018-10-27

计算机网络(谢希仁)答案

计算机网络(第7版)是一本计算机网络教材,由著名教授谢希仁编著。本书内容丰富、概念准确、论述严谨、内容新颖,比较全面系统的讲解了计算机多年以来的网络发展历程和计算机网络结构,并且书中还采用了图文搭配的写作方式,能够非常有效的基本原理和基本概念的阐述,同时力图反映计算机网络的一些全新发展。非常适合电气信息类和计算机类专业的大学本科生和研究生下载使用。

2018-06-13

空空如也

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

TA关注的人

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