- 博客(32)
- 资源 (39)
- 收藏
- 关注
原创 编程题—有趣的数字
内容会持续更新,有错误的地方欢迎指正,谢谢!题目小Q今天在上厕所时想到了这个问题:有n个数,两两组成二元组,差最小的有多少对呢?差最大呢?输入描述: 输入包含多组测试数据。对于每组测试数据: N - 本组测试数据有n个数 a1,a2…an - 需要计算的数据保证: 1<=N<=100000,0<=ai<=INT_MAX.输出描述: 对于每组数据,输出两个数,第一个数表示差最小的对数,第二个
2017-12-31 16:38:29 795
原创 编程题—字符移位
内容会持续更新,有错误的地方欢迎指正,谢谢!题目小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。你能帮帮小Q吗?输入描述: 输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000.输出描述: 对于每组数据,输出移位后的字符串。例子: 输入:AkleBiCeilD 输出...
2017-12-31 16:31:37 374
转载 C++编程常用头文件及其包含函数汇总
【转自】http://blog.csdn.net/linhaiyun_ytdx/article/details/48064065#include<iostream>是标准的C++头文件,任何符合标准的C++开发环境都有这个头文件。当使用<iostream.h>时,相当于在C中调用库函数,使用的是全局命名空间,也就是早期的C++实现;当使用<iostream>的时候,该头文件没有定义全局命名空间,必须
2017-12-31 16:00:57 3613
原创 编程题—构造回文
内容会持续更新,有错误的地方欢迎指正,谢谢!题目给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢? 输出需要删除的字符个数。输入描述: 输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000输出描述: 对于每组数据,输出一个整数,代表最少需要删除的字符个数。示例: 输入abcdba 输出1 输入google
2017-12-31 14:55:42 320
原创 《C++ Primer》读书笔记目录
目录:笔记会持续更新,有错误的地方欢迎指正,谢谢!第I部分 C++基础第一章:开始第二章:变量和基本类型-基本内置类型和变量第二章:变量和基本类型-复合类型和const限定符第二章:变量和基本类型-处理类型和自定义数据结构第三章:字符串、向量和数组-标准库类型string第三章:字符串、向量和数组-标准库类型vector第三章:字符串、向量和数组-迭代器介绍第三章:字符串、向量和数组-数组和多维
2017-12-27 17:39:31 1391
原创 《C++ Primer》读书笔记第十六章-2-模板实参推断、可变参数模板
笔记会持续更新,有错误的地方欢迎指正,谢谢!模板实参推断本章内容不重要,了解即可~类型转换与模板类型参数类型参数转换:通常不转换而是生成一个新的模板实例;有限可用的转换规则包括const转换和数组或函数指针转换;非模板类型参数正常转换。函数模板显示实参显式模板实参:在函数之后,实参列表前用尖括号提供显式实参;只有尾部的显式模板实参,并且可从函数参数推断出来的时候,才可忽略;显式指定的实参可正常类型转
2017-12-26 13:43:16 993
原创 《C++ Primer》读书笔记第十六章-1-定义模板
笔记会持续更新,有错误的地方欢迎指正,谢谢!这一章特别实用,神器—>模板泛型编程能处理在编译之前类型不知道的情况,在编译时获知类型,比如我们学过的容器、迭代器和算法都是泛型编程。模板是C++中泛型编程的基础,记住:一个模板就是一个创建类或函数的蓝图。定义模板函数模板要实现一个功能:比较两个值的大小。这两个值可能是int,, double, string等等,如果我们写出这些函数就会发现,它们除了参数
2017-12-26 13:41:52 787
原创 结构体和类的区别(C/C++/C#)
内容会持续更新,有错误的地方欢迎指正,谢谢!C的struct与C++的class的区别:struct与class有着非常明显的区别。C是一种过程化的语言,struct只是作为一种复杂数据类型定义,struct中只能定义成员变量,不能定义成员函数,并且不能用于面向对象编程。C++中的struct和class的区别:struct有构造函数和成员函数、继承、虚函数等特性,因此,C...
2017-12-26 02:00:30 738
原创 《C++ Primer》读书笔记第十五章-3-构造函数和拷贝控制、容器与继承
笔记会持续更新,有错误的地方欢迎指正,谢谢!构造函数和拷贝控制虚析构函数继承体系中的析构函数应该定义为虚函数。 以前说过,定义了析构函数就要定义拷贝和赋值,但这里基类的析构函数是例外。合成拷贝控制与继承派生类中定义为删除的拷贝控制与基类的关系class B{public: B(); //默认构造函数声明 B(const B&) = delete; //定义为删除的拷贝构造函数
2017-12-26 01:37:52 913
原创 《C++ Primer》读书笔记第十五章-2-虚函数、继承中的类作用域
笔记会持续更新,有错误的地方欢迎指正,谢谢!虚函数与普通函数一样,有个需要注意的地方是:既然默认实参可以在基类和派生类中都有,那我们最好让它们一致。实参值由本次调用的静态类型决定。抽象基类纯虚函数纯虚函数可清晰地告诉用户当前这个纯虚函数(net_price)是没实际意义的。在函数体位置写上=0就可以将一个虚函数说明为纯虚函数,只能出现在类内部的虚函数声明语句处://书店多种购书优惠政策问题clas
2017-12-24 22:32:42 465
原创 《C++ Primer》读书笔记第十五章-1-OOP概述、定义基类和派生类
笔记会持续更新,有错误的地方欢迎指正,谢谢!这是非常重要的内容,笔试面试的时候会经常考察这方面的知识~面向对象程序设计(OOP)基于三个基本概念:数据抽象(分离接口和实现)、继承(可定义相似的类型)、动态绑定(可在一定程度上忽略相似类型的区别,而以统一的方式使用它们的对象)。原来,我觉得有了类不就可以面向对象了吗?只要把实际中的对象抽象成类,好好设计一下,自己去定义构造函数、拷贝构造函数、重载一些运
2017-12-24 16:59:45 491 2
原创 《C++ Primer》读书笔记第十四章-3-类型转换运算符、二义性
笔记会持续更新,有错误的地方欢迎指正,谢谢!转换构造函数先来看看以前学的转换构造函数:string a = "haha";Sales_data b;b.combine(a); //combine接受一个Sales_data对象,但是一个string也行,因为隐式转换了。其实编译器用这个string构造了一个临时的Sales_data对象,用的就是只接受一个string的构造函数,所以搞了个定义
2017-12-24 05:59:05 404
原创 《C++ Primer》读书笔记第十四章-2-函数调用运算符
笔记会持续更新,有错误的地方欢迎指正,谢谢!函数调用运算符类包含状态所以比普通函数更灵活,如果类定义了调用运算符(),那么该类的对象叫作函数对象,因为可以调用这种对象,所以,我们说这些对象的行为像函数一样。带状态的函数对象类我们要写个打印string的类,默认情况下,我们的类会把内容写入cout中,每个string用空格隔开,也允许用户提供其他可写入的流及分隔符:class PrintString
2017-12-24 04:21:35 368
原创 ++i和i++的区别(C++)
内容会持续更新,有错误的地方欢迎指正,谢谢!区别:i++ 与 ++i 的主要区别有两个:i++ 返回原来的值,++i 返回加1后的值。i++ 不能作为左值,而++i 可以。第一点不用解释了,说下第二点。 首先解释下什么是左值?左值(可被寻址的值)是对应内存中有确定存储地址的值,而右值是所有不是左值的表达式的值。一般来说,左值是可以放到赋值符号左边的变量。但能否被...
2017-12-24 04:16:38 1590
原创 《C++ Primer》读书笔记第十四章-1-重载IO、算术、关系等运算符
笔记会持续更新,有错误的地方欢迎指正,谢谢!这一章其实很简单,目的只有一个: 让我们使用自定义的类像使用内置类型一样,运算符的操作可通过重载自定义。基本概念规定重载运算符:函数名由关键字operator和其要定义的运算符号共同组成。重载运算符函数的参数数量与该运算符作用的运算对象数量一样,例如对于+,左侧运算对象传递给第一个参数,右侧运算对象传递给第二个参数。除了 operator()(重载
2017-12-24 01:21:20 498
原创 《C++ Primer》读书笔记第十三章-3-对象移动
笔记会持续更新,有错误的地方欢迎指正,谢谢!对象移动移动对象的优势:我们在赋值操作时,对象拷贝后就立即销毁,但移动而非拷贝对象会大幅度提升性能。有些类型是不能被拷贝的,如IO类和unique_ptr,在旧标准中我们无法在容器中保存它们,因为它们无法被拷贝,就不存在赋值之类的操作。但引入了移动操作后,我们就可以用容器保存它们。右值引用通过&&来获得右值引用,右值引用只能绑定到一个即将销毁的对象上
2017-12-23 22:52:04 325
原创 const char *a与char const *a与char * const a的区别
内容会持续更新,有错误的地方欢迎指正,谢谢!题目说出以下四个语句的区别: const char *a char * const a char const *a const char * const aconst和指针的基础知识:指向常量的指针(C++Primer上叫 指向常量的指针)(底层const):自觉不去(靠它自己也不能)改变所指对象,而该对象若不是常量对象则其值...
2017-12-23 14:38:36 3955 1
原创 《C++ Primer》读书笔记第十三章-2-拷贝控制、交换、动态内存管理类
笔记会持续更新,有错误的地方欢迎指正,谢谢!拷贝控制和资源管理拷贝语义:类的行为像值,有自己的状态;类的行为像指针,共享状态;IO和unique_ptr不允许拷贝或赋值,值和指针都不像.类值拷贝赋值:自赋值也是安全的,发生异常后左侧对象状态仍有意义;先拷贝构造右侧对象到临时变量,再销毁左侧成员并赋予新值。引用计数:用于类指针拷贝控制成员敏感词享状态,构造、创建副本、赋值左侧递增,销毁、赋值右侧递减。
2017-12-22 13:06:22 522
原创 《C++ Primer》读书笔记第十三章-1-拷贝、赋值、销毁
笔记会持续更新,有错误的地方欢迎指正,谢谢!拷贝控制一个类可通过定义五种特殊的成员函数来控制拷贝、赋值、移动、销毁操作。 特殊的成员函数 控制类的行为 拷贝构造函数和移动构造函数 用同类型的另一个对象初始化本对象时做什么(class a(b)) 拷贝赋值运算符和移动赋值运算符 将一个对象赋予同类型的另一个对象时做什么(class a = b)...
2017-12-21 15:53:10 401
原创 单源最短路径和全成对最短路径算法
内容会持续更新,有错误的地方欢迎指正,谢谢!前言:博主最近正在学习《算法》这门专业课程,这是该课程的第四次上机题目,我把自己的解题方法分享给大家,欢迎讨论!单源最短路径 题目以 S 为源节点,实现Bellman-Ford(中文名:贝尔曼福特算法) 单源最短路径算法。Dijkstra算法请见下方图解: 但Dijkstra算法不适用于有负权边的图,所以这里,用Be...
2017-12-18 14:06:38 2289
转载 Boost库和STL介绍
转自:http://blog.csdn.net/feitianxuxue/article/details/7237749 Boost库: Boost库是C++第三方库中的一种。作为标准库的后备,其中有些内容有望成为下一代C++标准库内容,是不折不扣的“准”标准库,大部分Boost库功能的使用只需包括相应头文件即可,少数需要链接库。但Boost中也有很多是实验性质的东西,在实际的开发中使用需要...
2017-12-15 17:14:25 2645
原创 STL源码剖析 之 vector
内容会持续更新,有错误的地方欢迎指正,谢谢!vector容器概述: vector的数据安排以及操作方式,与array非常相似。两者的唯一区别在于空间的运用的灵活性。array是静态空间,一旦配置了就不能改变;要换个大(或小)一点的房子,可以,一切琐细都得由客户端自己来:首先配置一块新空间,然后将元素从旧址一一搬往新址,再把原来的空间释还给系统。vector是动态空间,随着元素的加入,它
2017-12-14 13:54:58 476 2
原创 跳台阶问题、变态跳台阶问题、矩形覆盖问题—C++实现
内容会持续更新,有错误的地方欢迎指正,谢谢!本文的例题:递归和循环类型跳台阶问题题目: 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。递归法实现代码://f(n)=f(n-1)+f(n-2) 斐波拉契数列class Solution {public: int konwn[] int jumpFloor(int number)
2017-12-14 08:47:00 1101
原创 最长共同子序列LCS—动态规划实现
内容会持续更新,有错误的地方欢迎指正,谢谢!前言:博主最近正在学习《算法》这门专业课程,这是该课程的第三次上机题目,我把自己的解题方法分享给大家,欢迎讨论!题目: 描述并实现最长共同子序列动态规划算法,并显示S1=ACCGGTCGAGATGCAG,S2 = GTCGTTCGGAATGCAT 的最长共同子序列。最终结果: 最长共同子序列:CCGGGAATGCA 长度:11该题...
2017-12-13 23:42:11 1297
原创 作业排程算法—动态规划实现
内容会持续更新,有错误的地方欢迎指正,谢谢!前言:博主最近正在学习《算法》这门专业课程,这是该课程的第三次上机题目,我把自己的解题方法分享给大家,欢迎讨论!题目: 最终结果: 该题的递推式: 根据该递推式,便可写出基于递归的动态规划代码,此处省略该代码。我们用基于迭代的动态规划代码试试:基于迭代的动态规划代码void FastestWay( int&amp; r...
2017-12-13 22:50:18 8977 3
原创 最近点对算法—分治法实现
内容会持续更新,有错误的地方欢迎指正,谢谢!前言:博主最近正在学习《算法》这门专业课程,这是该课程的第二次上机题目,我把自己的解题方法分享给大家,欢迎讨论!题目: 创建100个随机点,并计算最近的两个点之间的距离,输出随机生成的100个点的坐标、最近的两个点的坐标及其之间的距离、并用#include 画出整个界面并连接最近的两个点。非分治法实现的代码:#include #
2017-12-13 21:21:17 2612
原创 malloc/free和new/delete的区别
内容会持续更新,有错误的地方欢迎指正,谢谢!异同相同点:都可用于申请动态内存并释放内存。不同点:1.本质不同malloc与free是C++/C 语言的标准库函数,而new/delete 是C++的运算符。对于非内部数据类型(内部数据类型:不需要用户自己定义,如int,char,float等;非内部数据类型:需要用户自己定义,如struct,enum,unio...
2017-12-13 12:01:51 400
原创 什么变量存放在栈和堆
内容会持续更新,有错误的地方欢迎指正,谢谢!什么是栈区,什么是堆区栈区(stack):由编译器自动分配释放 ,存放函数的参数值、局部变量的值等,内存的分配是连续的,类似于数组,当我们声明变量时,编译器会自动接着当前栈区的结尾来分配内存。堆区(heap):由程序员分配释放, 若程序员不释放,程序结束时由OS回收,内存的分配不是连续的,类似于链表。变量存放的位置C/C++程...
2017-12-12 17:27:35 13829 2
原创 memset()、memcpy()、strcpy()的用法
内容会持续更新,有错误的地方欢迎指正,谢谢!memset()用法定义:void *memset(void *s,int c,size_t n) 作用:将已开辟内存空间 s 的首 n 个字节的值设为值 c。 void是一个通用类型,使用的时候可以用int、char等等。 注意:memset()是针对字节来处理的,所以需要特别注意size_t n的正确性。memset() 函数常用于内存空间初始化
2017-12-11 21:01:13 572
原创 递归、分治和动态规划的关系
内容会持续更新,有错误的地方欢迎指正,谢谢!动态规划如果大问题分解为很多小问题后,小问题有互相重叠部分,则用递归的思路来分析问题,再用数组存储中间结果+循环的思路来写代码!动态规划的三个特征适用于最优解问题有大量的重复子问题子问题之间有依赖(不独立)与递归的关系:这些重复的子问题,DP算法将其结果用一维或二维数组(邻接矩阵)保存下来,等下一次又要计算该子问题时,直接...
2017-12-10 17:27:16 1289
原创 深入理解递归(一)
内容会持续更新,有错误的地方欢迎指正,谢谢!什么是迭代和递归迭代的是人,递归的是神。 –L. Peter Deutsch简单的定义: 当函数直接或者间接调用自己时,则发生了递归。但递归并不直观, 也不符合我们的思维习惯。因为递归的过程就是出入栈的过程。所以,每个递归程序都可把它改写为非递归版本,只需利用栈,通过入栈和出栈两个操作就可以模拟递归的过程,比如:二叉树的遍历。...
2017-12-09 21:01:23 1475
原创 Strassen’s 矩阵乘法—分治法实现
内容会持续更新,有错误的地方欢迎指正,谢谢!前言:博主最近正在学习《算法》这门专业课程,这是该课程的第二次上机题目,我把自己的解题方法分享给大家,欢迎讨论!题目: 1.比较数学定义的矩阵乘法算法和Strassen’s 矩阵乘法算法的效率; 2.自主生成两个16*16的矩阵,输出Strassen’s 矩阵乘法算法结果。数学定义的矩阵乘法算法:利用三个for循环来解决,时间复杂度为O(n^3)。数学
2017-12-06 23:40:46 5642
Sqlite3.exe(TortoiseSVN清理工具).rar
2019-09-03
运营之光2.0 我的互联网运营方法论与自白(彩色 高清完整 带书签版).pdf
2018-11-03
unity4.x破解工具UniPatcher
2018-10-10
STL源码剖析简体中文(带目录版本)高清完整PDF版
2017-10-03
深度探索C++对象模型 中文 高清完整PDF版
2017-10-03
【免费】安卓开发全套知识点(大学毕业生找工作必备)
2017-10-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人