C++
Lange_Taylor
从零开始
展开
-
小型超市收银台
#收银台开发环境:C/C++、VS2017、MySQL Server 8.0项目功能:实现小型超市管理货物和收银。老板具有管理员超级权限可以对员工进行管理。员工可以对货物仓库进行管理。收银功能的简单实现。项目描述:用C++类封装对MySQL数据库的操作方法。使用DuiDersigner_d可视化工具搭建界面,操作XML文件。Duilib程序Win32消息循环进行事件响应完成功能实现...原创 2019-09-03 21:58:33 · 624 阅读 · 0 评论 -
每日一题
网络系统通常会频繁地访问数据库,如果每次访问都创建新连接,性能会很差。为了提高性能,架构师决定复用已经创建的连接。当收到请求,并且连接池中没有剩余可用的连接时,系统会创建一个新连接,当请求处理完成时该连接会被放入连接池中,供后续请求使用。现在提供你处理请求的日志,请你分析一下连接池最多需要创建多少个连接。输入描述:输入包含多组数据,每组数据第一行包含一个正整数N(1≤n≤1000),表示请求...原创 2019-08-14 21:10:18 · 192 阅读 · 0 评论 -
每日一题
NowCoder每天要给很多人发邮件。有一天他发现发错了邮件,把发给A的邮件发给了B,把发给B的邮件发给了A。于是他就思考,要给n个人发邮件,在每个人仅收到1封邮件的情况下,有多少种情况是所有人都收到了错误的邮件?即没有人收到属于自己的邮件。输入描述:输入包含多组数据,每组数据包含一个正整数n(2≤n≤20)。输出描述:对应每一组数据,输出一个正整数,表示无人收到自己邮件的种数。示例1...原创 2019-08-19 23:23:04 · 349 阅读 · 0 评论 -
指针与引用 cast转换
指针与引用:定义:1、引用:C++是C语言的继承,它可进行过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。引用就是C++对C语言的重要扩充。引用就是某一变量的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符 &引用名=目标变量名;引用引入了对象的一个同义词。定义引用的表示方法与定义指针相...原创 2019-08-07 17:41:19 · 1379 阅读 · 0 评论 -
每日一题
NowCoder在淘宝上开了一家网店他发现在月份为素数的时候,当月每天能赚1元;否则每天能赚2元现在给你一段时间区间,请你帮他计算总收益有多少。输入描述:输入包含多组数据。每组数据包含两个日期从和到(2000-01-01≤从≤到≤2999-12-31)。日期用三个正整数表示,用空格隔开:年月日。输出描述:对应每一组数据,输出在给定的日期范围(包含开始和结束日期)内能赚多少钱。示例1...原创 2019-08-09 20:55:42 · 394 阅读 · 0 评论 -
每日一题
求字典序在s1和s2之间的,长度在len1到len2的字符串的个数,结果mod 1000007。输入描述:每组数据包涵s1(长度小于100),s2(长度小于100),len1(小于100000),len2(大于len1,小于100000)输出描述:输出答案。示例1输入ab ce 1 2输出56本质:26进制进行计算/*补齐字符串,按照26进制进行计算*/#includ...原创 2019-08-18 18:51:30 · 417 阅读 · 1 评论 -
内存泄露 智能指针
为什么要使用智能指针:智能指针的作用是管理一个指针,因为存在以下这种情况:申请的空间在函数结束时忘记释放,造成内存泄漏。使用智能指针可以很大程度上的避免这个问题,因为智能指针就是一个类,当超出了类的作用域是,类会自动调用析构函数,析构函数会自动释放资源。所以智能指针的作用原理就是在函数结束时自动释放内存空间,不需要手动释放内存空间。RAII://RAII(Resource Acquisit...原创 2019-08-13 20:31:29 · 333 阅读 · 0 评论 -
每日一题
给定一个全是正数的数组arr,定义一下arr的最小不可组成和的概念: 1,arr的所有非空子集中,把每个子集内的所有元素加起来会出现很多的值,其中最小的记为min,最大的记为max; 2,在区间[min,max]上,如果有一些正数不可以被arr某一个子集相加得到,那么这些正数中最小的那个,就是arr的最小不可组成和; 3,在区间[min,max]上,如果所有的数都可以被arr的某一个子集相加得到,...原创 2019-08-06 17:27:58 · 156 阅读 · 0 评论 -
++i和i++ C与C++小问题
++i和i++的区别 ++i先自增1,再返回,i++先返回i,再自增1++i 实现:int& int::operator++(){*this +=1;return *this;}i++ 实现:const int int::operator(int) { int oldValue = *this; ++(*this); return oldValu...原创 2019-08-08 19:11:09 · 384 阅读 · 0 评论 -
每日一题
题目描述有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?输入描述...原创 2019-07-28 16:46:43 · 119 阅读 · 0 评论 -
每日一题
和中国的节日不同,美国的节假日通常是选择某个月的第几个星期几这种形式,因此每一年的放假日期都不相同。具体规则如下:1月1日:元旦1月的第三个星期一:马丁·路德·金纪念日2月的第三个星期一:总统节5月的最后一个星期一:阵亡将士纪念日7月4日:美国国庆9月的第一个星期一:劳动节11月的第四个星期四:感恩节12月25日:圣诞节现在给出一个年份,请你帮忙生成当年节日的日期。输入描述...原创 2019-08-08 11:40:45 · 219 阅读 · 0 评论 -
每日一题
题目描述有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问每个月的兔子总数为多少?/** * 统计出兔子总数。 * * @param monthCount 第几个月 * @return 兔子总数 */public static int getTotalCount(int monthCount){ return 0...原创 2019-07-28 16:25:07 · 120 阅读 · 0 评论 -
每日一题
一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢?输入描述:输入包含多组数据。每组数据包含两个字符串S,T,分别是成对出现的花布条和小饰条,其布条都是用可见ASCII字符表示的,可见的ASCII字符有多少个,布条的花纹也有多少种花样。花纹条和小饰条不会超过1000个字符长。输出描述:对应每组输入,...原创 2019-08-10 23:05:46 · 203 阅读 · 0 评论 -
C++源文件 include头文件
C++源文件从文本到可执行文件经历的过程?对于C++源文件,从文本到可执行文件一般需要四个过程:预处理阶段:对源代码文件中文件包含关系(头文件)、预编译语句(宏定义)进行分析和替换,生成预编译文件。编译阶段:将经过预处理后的预编译文件转换成特定汇编代码,生成汇编文件汇编阶段:将编译阶段生成的汇编文件转化成机器码,生成可重定位目标文件链接阶段:将多个目标文件及所需要的库连接成最终的可执行...原创 2019-08-10 23:25:31 · 1619 阅读 · 0 评论 -
每日一题
NowCoder每天要给许多客户写电子邮件正如你所知,如果一封邮件中包含多个收件人,收件人姓名之间会用一个逗号和空格隔开。如果收件人姓名也包含空格或逗号,则姓名需要用双引号包含。现在给你一组收件人姓名,请你帮他生成相应的收件人列表。输入描述:输入包含多组数据。每组数据的第一行是一个整数n(1≤n≤128),表示后面有n个姓名。紧接着n行,每一行包含一个收件人的姓名。姓名长度不超过16个字...原创 2019-08-11 09:50:55 · 469 阅读 · 0 评论 -
每日一题
有 n 个学生站成一排,每个学生有一个能力值,牛牛想从这 n 个学生中按照顺序选取 k 名学生,要求相邻两个学生的位置编号的差不超过 d,使得这 k 个学生的能力值的乘积最大,你能返回最大的乘积吗?输入描述:每个输入包含 1 个测试用例。每个测试数据的第一行包含一个整数 n (1 <= n <= 50),表示学生的个数,接下来的一行,包含 n 个整数,按顺序表示每个学生的能力值 a...原创 2019-08-28 19:19:02 · 448 阅读 · 0 评论 -
每日一题
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。方法一:class Solution { public: int MoreThanHalfNum_Solution(vector<int> numbers) ...原创 2019-08-27 12:22:39 · 155 阅读 · 0 评论 -
每日一题
从C/C++转到Java的程序员,一开始最不习惯的就是变量命名方式的改变。C语言风格使用下划线分隔多个单词,例如“hello_world”;而Java则采用一种叫骆驼命名法的规则:除首个单词以外,所有单词的首字母大写,例如“helloWorld”。请你帮可怜的程序员们自动转换变量名。输入描述:输入包含多组数据。每组数据一行,包含一个C语言风格的变量名。每个变量名长度不超过100。输出描述...原创 2019-08-23 14:19:08 · 297 阅读 · 0 评论 -
每日一题
上图是一个电话的九宫格,如你所见一个数字对应一些字母,因此在国外企业喜欢把电话号码设计成与自己公司名字相对应。例如公司的Help Desk号码是4357,因为4对应H、3对应E、5对应L、7对应P,因此4357就是HELP。同理,TUT-GLOP就代表888-4567、310-GINO代表310-4466。NowCoder刚进入外企,并不习惯这样的命名方式,现在给你一串电话号码列表,请你帮他转...原创 2019-08-22 19:49:00 · 252 阅读 · 0 评论 -
二叉树后序遍历非递归
给定一个二叉树,返回它的 后序 遍历。示例:输入: [1,null,2,3]12/3输出: [3,2,1]进阶: 递归算法很简单,你可以通过迭代算法完成吗?class Solution {public: vector<int> postorderTraversal(TreeNode* root) { vector<int> v; ...原创 2019-08-22 19:26:49 · 240 阅读 · 0 评论 -
每日一题
有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的(上下左右四个方向)黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。输入描述:输入包含多组数据。每组数据第一行是两个整数 m 和 n(1≤m, n≤20)。紧接着 m 行,每行包括 n 个字符。每个字符表示一块瓷砖的颜色,规则如下:“.”:黑色的瓷砖;“#”:白色的瓷砖;...原创 2019-08-17 15:07:52 · 185 阅读 · 0 评论 -
每日一题
nowcoder要和朋友交流一些敏感的信息,例如他的电话号码等。因此他要对这些敏感信息进行混淆,比如在数字中间掺入一些额外的符号,让它看起来像一堆乱码。现在请你帮忙开发一款程序,解析从nowcoder那儿接收到的信息,读取出中间有用的信息。输入描述:输入有多行。每一行有一段经过加密的信息(其中可能包含空格),并且原始信息长度不确定。输出描述:输出每段信息中数字信息。示例1输入$ ...原创 2019-08-21 20:26:56 · 263 阅读 · 0 评论 -
每日一题
今年公司年会的奖品特别给力,但获奖的规矩却很奇葩:首先,所有人员都将一张写有自己名字的字条放入抽奖箱中;待所有字条加入完毕,每人从箱中取一个字条;如果抽到的字条上写的就是自己的名字,那么“恭喜你,中奖了!”现在告诉你参加晚会的人数,请你计算有多少概率会出现无人获奖?输入描述:输入包含多组数据,每组数据包含一个正整数n(2≤n≤20)。输出描述:对应每一组数据,以“xx.xx%”...原创 2019-08-12 21:35:56 · 277 阅读 · 0 评论 -
每日一题
给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2,...原创 2019-08-25 15:12:51 · 178 阅读 · 0 评论 -
每日一题
nowcoder有两盒(A、B)乒乓球,有红双喜的、有亚力亚的……现在他需要判别A盒是否包含了B盒中所有的种类,并且每种球的数量不少于B盒中的数量,该怎么办呢?输入描述:输入有多组数据。每组数据包含两个字符串A、B,代表A盒与B盒中的乒乓球,每个乒乓球用一个大写字母表示,即相同类型的乒乓球为相同的大写字母。字符串长度不大于10000。输出描述:每一组输入对应一行输出:如果B盒中所有球的...原创 2019-08-24 20:47:50 · 323 阅读 · 1 评论 -
大小端
大小端是哪里来的概念大端、小端是“字节顺序”里面的概念。字节顺序可以分为大端序、小端序、混合序。什么是字节顺序“字节顺序”简称为“字节序”。在计算机系统中,存储对象一般是以字节为单位的,每个地址单元都对应着一个字节。对于单字节对象,存放方法和传输方式一般相同。对于多字节对象,情况就不同了。我们必须建立两个规则:1.这个对象的地址是什么2.在存储器中如何排列这些字节这个对象的地...原创 2019-08-11 20:27:01 · 482 阅读 · 0 评论 -
每日一题
NowCoder最近爱上了五子棋,现在给你一个棋局,请你帮忙判断其中有没有五子连珠(超过五颗也算)。输入描述:输入有多组数据,每组数据为一张20×20的棋盘。其中黑子用“*”表示,白子用“+”表示,空白位置用“”表示。输出描述:如果棋盘上存在五子连珠(无论哪种颜色的棋子),输入“是”,否则输出“否”。示例1输入.................... .................原创 2019-08-20 15:17:53 · 250 阅读 · 0 评论 -
每日一题
题目描述1 1 1 1 1 2 3 2 11 3 6 7 6 3 11 4 10 16 19 16 10 4 1以上三角形的数阵,第一行只有一个数1,以下每行的每个数,是恰好是它上面的数,左上角数到右上角的数,3个数之和(如果不存在某个数,认为该数就是0)。求第n行第一个偶数出现的位置。如果没有偶数,则输出-1。例如输入3,则输出2,输...原创 2019-07-28 15:42:06 · 232 阅读 · 0 评论 -
每日一题
给定一个长度不小于2的数组arr。 写一个函数调整arr,使arr中要么所有的偶数位上都是偶数,要么所有的奇数位上都是奇数上。 要求:如果数组长度为N,时间复杂度请达到O(N),额外空间复杂度请达到O(1),下标0,2,4,6…算作偶数位,下标1,3,5,7…算作奇数位,例如[1,2,3,4]调整为[2,1,4,3]即可class Solution {public:/*** 奇数位上都是...原创 2019-08-05 20:40:07 · 122 阅读 · 0 评论 -
每日一题
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、、/四则运算符号。方法一:1、首先将a转换为地址类型,即a=7,那么转换之后的就是0x00000007, 指针c就是指向该地址。2、c[b]就是相当于平时数组中的取下标为b的元素的值,就是说c[b]=c+sizeof(char)b。因为b等于8,所以c[b]的地址就是0x0000000f.3、因为c是指针,所以c[b]指向的是0x00...原创 2019-08-04 18:55:49 · 107 阅读 · 0 评论 -
每日一题
题目描述根据输入的日期,计算是这一年的第几天。。详细描述:输入某年某月某日,判断这一天是这一年的第几天?。接口设计及说明:/*****************************************************************************Description : 数据转换Input Param : year 输入年份Month 输入...翻译 2019-07-23 17:39:02 · 174 阅读 · 0 评论 -
每日一题
题目描述有两个32位整数n和m,请编写算法将m的二进制数位插入到n的二进制的第j到第i位,其中二进制的位数从低位数到高位且以0开始。给定两个数int n和int m,同时给定int j和int i,意义如题所述,请返回操作后的数,保证n的第j到第i位均为零,且m的二进制位数小于等于i-j+1。测试样例:1024,19,2,6返回:1100class BinInsert {public...原创 2019-07-16 16:35:08 · 181 阅读 · 0 评论 -
每日一题
题目描述请编写一个函数,将两个数字相加。不得使用+或其他算数运算符。给定两个int A和B。请返回A+B的值测试样例:1,2返回:3class UnusualAdd {public: int addAB(int A, int B) { int sum = 0, carry = 0; while(B!=0){ //对应位的和 sum = A^B; //对应位和的进位,...原创 2019-07-18 17:55:41 · 173 阅读 · 0 评论 -
每日一题
读入一个字符串str,输出字符串str中的连续最长的数字串输入描述:个测试输入包含1个测试用例,一个字符串str,长度不超过255。输出描述:在一行内输出str中里连续最长的数字串。示例1输入复制abcd12345ed125ss123456789输出复制123456789#include <iostream>#include <string>us...原创 2019-07-07 14:18:57 · 139 阅读 · 0 评论 -
每日一题
题目:对于一个给定的井字棋棋盘,请设计一个高效算法判断当前玩家是否获胜。给定一个二维数组board,代表当前棋盘,其中元素为1的代表是当前玩家的棋子,为0表示没有棋子,为-1代表是对方玩家的棋子。测试样例:[[1,0,1],[1,-1,-1],[1,-1,0]]返回:trueclass Board {public: bool checkWon(vector<vector...原创 2019-07-11 23:19:28 · 496 阅读 · 0 评论 -
每日一题
排序子序列牛牛定义排序子序列为一个数组中一段连续的子序列,并且这段子序列是非递增或者非递减排序的。牛牛有一个长度为n的整数数组A,他现在有一个任务是把数组A分为若干段排序子序列,牛牛想知道他最少可以把这个数组分为几段排序子序列.如样例所示,牛牛可以把数组A划分为[1,2,3]和[2,2,1]两个排序子序列,至少需要划分为2个排序子序列,所以输出2输入描述:输入的第一行为一个正整数n(1 ...原创 2019-07-06 19:35:42 · 641 阅读 · 0 评论 -
每日一题
题目描述有一棵无穷大的满二叉树,其结点按根结点一层一层地从左往右依次编号,根结点编号为1。现在有两个结点a,b。请设计一个算法,求出a和b点的最近公共祖先的编号。给定两个int a,b。为给定结点的编号。请返回a和b的最近公共祖先的编号。注意这里结点本身也可认为是其祖先。测试样例:2,3返回:1class LCA {public:int getLCA(int a, int b) {...原创 2019-07-15 14:58:37 · 198 阅读 · 0 评论 -
每日一题
题目描述牛牛举办了一次编程比赛,参加比赛的有3 * N个选手,每个选手都有一个水平值A_I。现在要将这些选手进行组队,一共组成Ñ个队伍,即每个队伍3人。牛牛发现队伍的水平值等于该队伍队员中第二高水平值。例如:。一个队伍三个队员的水平值分别是3,3,3那么队伍的水平值是3一个队伍三个队员的水平值分别是3,2,3。那么队伍的水平值是3一个队伍三个队员的水平值分别是1,5,2。那么队伍的水平值...原创 2019-07-05 17:43:17 · 227 阅读 · 0 评论 -
宏与内联函数
宏常量const :C++中用来替换宏#define PI 3.14#define PI " 3.14"没有参数类型检测代码运行错误,(报错位置)难以调试C++中 const 修饰常量弥补缺乏类型检测缺点并且具有宏替换属性int main() { const int a = 10; int * pa = (int*)&a; *pa = 100;//c...原创 2019-07-10 17:45:44 · 146 阅读 · 0 评论 -
每日一题
题目描述考拉有n个字符串字符串,任意两个字符串长度都是不同的。考拉最近学习到有两种字符串的排序方法: 1.根据字符串的字典序排序。例如:“car” < “carriage” < “cats” < “doggies < “koala”2.根据字符串的长度排序。例如:“car” < “cats” < “koala” < “doggies” < “...原创 2019-07-15 00:00:17 · 158 阅读 · 0 评论