c++
朝歌1122
计算机科学与技术
展开
-
Qt 常见的几种数据类型转换
double/float size = 2.3334524;QString str = QString::number(size, 'f', 2);其中f代表非科学计数法格式,2代表小数点后两位。char * 与 const char *的转换char *ch1="hello11";const char *ch2="hello22";ch2 = ch1;//不报错,但有警告...转载 2019-06-15 17:59:38 · 3650 阅读 · 0 评论 -
c++ getline()、get()等
在学习C++的过程中,经常会遇到输入输出的问题,以下总结一下下面几个函数的用法:1)、cin2)、cin.get()3)、cin.getline()4)、getline()5)、gets()1、cin>> 用法1:最基本,也是最常用的用法,输入一个数字: #include <iostream> using namespace...转载 2019-05-14 09:15:21 · 1711 阅读 · 0 评论 -
C++-new(动态分配)和delete(撤销内存)
在程序中经常用到动态空间和撤销内存空间。在C语言中用的是malloc和free。但是使用malloc时需要指定开辟空间的大小,还有就是malloc只能从用户知道开辟空间的大小而不知道类型,因此无法返回具体的数据。其返回值一般是void *类型,必须强制类型转换才能使其返回指定数据。c++提供了new和delete来取代malloc和free。new int;//开辟一个存放整数的存储空间...原创 2019-05-05 17:37:10 · 649 阅读 · 0 评论 -
C/C++数组初始化的一些误区
以前我这样初始化一个数组,并自我感觉良好:int a[5] = { 0 }; // 全部初始化为0这种简单的写法让我非常爽,于是我又想把数组全部初始化为1:int a[5] = { 1 }; // 我想全部初始化为1直到十分钟前,我都以为这句代码确实能够将5个元素全部初始化为1,但事实跟我想的完全不同!(基础的东西革命的本钱,疏漏不得啊)全部初始化为0的那行代码...原创 2019-05-05 17:00:52 · 365 阅读 · 0 评论 -
C++-内置函数(内联函数)
函数调用在执行时,首先要在栈中为形参和局部变量分配存储空间,然后还要将实参的值复制给形参,接下来还要将函数的返回地址(该地址指明了函数执行结束后,程序应该回到哪里继续执行)放入栈中,最后才跳转到函数内部执行。这个过程是要耗费时间的。另外,函数执行 return 语句返回时,需要从栈中回收形参和局部变量占用的存储空间,然后从栈中取出返回地址,再跳转到该地址继续执行,这个过程也要耗费时间。调用...原创 2019-05-05 16:52:02 · 2015 阅读 · 0 评论 -
算法-贪心算法-活动安排问题
关于贪心算法:https://blog.csdn.net/qq_40452317/article/details/88875193活动安排问题就是要在所给的活动集合中选出最大的相容活动子集合。该问题要求高效地安排一系列争用某一公共资源的活动。贪心算法提供了一个简单、漂亮的方法使得尽可能多的活动能兼容地使用公共资源。问题描述和分析 设有n个活动的集合E={1,2,…,n},其中...原创 2019-03-28 19:06:38 · 15469 阅读 · 0 评论 -
算法-动态规划-0/1背包问题
一、动态规划动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。20世纪50年代初美国数学家R.E.Bellman等人在研究多阶段决策过程(multistep decision process)的优化问题时,提出了著名的最优化原理(principle of optimality),把多阶段过程转化为一系列单阶...原创 2019-03-23 20:17:22 · 2545 阅读 · 1 评论 -
QT象棋练习(1)-QT基础
https://www.devbean.net/2012/08/qt-study-road-2-catelog/该作者的QT学习的非常好,非常细,可以参考。Qt 是一个著名的 C++ 应用程序框架。并不能说它只是一个 GUI 库,因为 Qt 十分庞大,并不仅仅是 GUI 组件。使用 Qt,在一定程度上你获得的是一个“一站式”的解决方案:不再需要研究 STL,不再需要 C++ 的,不再需...原创 2019-03-18 21:45:08 · 545 阅读 · 0 评论 -
QT中的makefile
一个工程(project)中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。、Makefile 文件描述了整个工程的编译、连接等规则。其中包括:工程中的哪些源文件需要编译以...原创 2019-05-09 21:04:03 · 9251 阅读 · 0 评论 -
QT中的三种基类
一.QMainWindow:QMainWindow类提供一个带有菜单条,工具条和一个状态条的主应用程序窗口。主窗口通常提供一个大的中央窗口部件,以及周围菜单,工具条,和一个状态栏。QMainWindow窗口经常被继承,使得封装中央部件,菜单,工具条,状态栏等都变得很容易,当用户点击它的时候,相应的槽就会被调用。二.QWidgetQWidet类是所有用户界面对象的基类,窗口部件是用户界面...转载 2019-05-10 19:32:25 · 2896 阅读 · 0 评论 -
QT-默认生成的文件解释
继承的是widget类。一、pro文件#-------------------------------------------------## Project created by QtCreator 2019-05-09T21:47:00##-------------------------------------------------QT += core g...原创 2019-05-10 20:24:05 · 583 阅读 · 0 评论 -
QT -关于QLineEdit的函数text获取的值是空的
//文本输入 rowEdit =new QLineEdit(this); rowEdit->setGeometry(500,120,300,40); colEdit = new QLineEdit(this); colEdit->setGeometry(500,190,300,40); MyPushButton *comfirBt...原创 2019-06-15 17:56:21 · 6711 阅读 · 0 评论 -
Qt——QLineEdit使用总结
QLineEdit是一个单行文本编辑控件。使用者可以通过很多函数,输入和编辑单行文本,比如撤销、恢复、剪切、粘贴以及拖放等。通过改变QLineEdit的echoMode(),可以设置其属性,比如以密码的形式输入。文本的长度可以由maxLength()限制,可以通过使用validator()或者inputMask()可以限制它只能输入数字。在对同一个QLineEdit的...转载 2019-06-15 17:35:09 · 2077 阅读 · 0 评论 -
[Qt]Cannot retrieve debugging output
描述:Qt Creator的问题,两个IDE同时打开,后打开的会出现这个情况解决方案:只打开一个IDE。原创 2019-06-12 21:08:11 · 414 阅读 · 0 评论 -
算法-分治法-0/1背包问题
每个物品我们都有两种选择,一个是放入,一个是不放入。假设f[i][c]表示第i次选择后,容量的为c的背包的价值。那么对于选择第i个的物品后其价值的第公式是:1、表示f[i-1][j]表示第i-1次选择后,容量为j的包的价值。f[i][j]=f[i-1][j]2、表示第i-1次选择后,容量为j-w[i]的价值,因为放入所以背包容量减少了,价值增加了 。f[i][j]=f[i...原创 2019-05-13 16:44:03 · 7329 阅读 · 2 评论 -
算法-贪心法-背包问题
对于背包问题(这个是背包问题,不是0/1背包问题),贪心有三种策略:1、从物品中选取价值最大的放入。2、从物品中选区重量最小的放入。3、选取物品的价值与重量的比值大的放入。第一第二种不能保证得到最优解,第三种有的资料说也不能保证得到最优解,但是能得到最优的近似解。这里选取第三种方法:1、先选取比值最大的物品。2、比较其重量是否小于背包容量,如果小,就放入,如果大于背包容量...原创 2019-05-12 21:27:32 · 3523 阅读 · 0 评论 -
算法-蛮力法-0/1背包问题
直接遍历每一种情况,用数组maxV[i]表示第i个物品放不放进去,0不放进,1放进。#include<iostream>using namespace std;int main(){ int w[5]={2,2,6,5,4},v[5]={6,3,5,4,6}; //重量和价值 int n=5,c=10; //n物品个数 ,c背包容量 int max=0; ...原创 2019-05-11 22:01:31 · 4492 阅读 · 0 评论 -
QT-error: no matching function for call to (lambda表达式)
完整的错误提示:D:\qt\code\test3_single\widget.cpp:51: error: no matching function for call to 'Widget::connect(QPushButton*&, void (QAbstractButton::*)(bool), Widget*, Widget::Widget(QWidget*)::<...原创 2019-05-11 16:14:24 · 3843 阅读 · 1 评论 -
c++ cout未声明的标识符
1、包含头文件iostream。#include<iostream>2、命名空间是否有误。using namespace std;原创 2019-05-24 16:27:47 · 8006 阅读 · 4 评论 -
杭电oj(2006-2010)
2006#include<iostream>using namespace std;int main(){ int n,i,a; while(cin>>n) { int s=1; for(i=0;i<n;i++) { cin>>a; if(a%2!=...原创 2019-03-17 21:25:48 · 273 阅读 · 0 评论 -
杭电oj(2000-2005)
2000#include<iostream>using namespace std; int main(){ char a,b,c,d; while(cin>>a>>b>>c){ if(a>b){ d = a; a = b; b ...原创 2019-03-17 21:21:48 · 162 阅读 · 0 评论 -
算法-减治法-二叉查找树的查找
算法-减治法-求中值和选择问题:https://blog.csdn.net/qq_40452317/article/details/88615748二叉查找树,又叫二叉排序树,如果不为空,它应该满足以下三个特点:1、树上的任一结点,该结点的值都大于它的非空左子树的值。2、树上的任一结点,该结点的值都小于它的非空右子树的值。3、任一结点的左右子树都是二叉搜索树。查找思路:...原创 2019-03-17 20:57:19 · 2137 阅读 · 1 评论 -
算法-蛮力法-旅行商问题
旅行商问题 旅行商问题(TravelingSalesmanProblem,TSP)是一个经典的组合优化问题。给定一系列城市和每对城市之间的距离,求解访问每一座城市一次并回到起始城市的最短回路。 使用蛮力法,在时间的允许下,肯定能够得到解,结构思想简单,容易实现,但是,运行速度慢,当数量达到一定时,时间将会持续很久,不适用于大规模数据。 ...原创 2019-03-06 19:58:44 · 4648 阅读 · 0 评论 -
算法-分治法-合并排序
分治法 任何一个计算机求解的问题,其所需的计算时间与规模都有关,规模越小的问题,所需的时间越少,就越容易得到结果,当一个问题的规模达到一定程度时,处理起来非常麻烦,分治法的思想就是,将一个难以直接解决的大问题,分割成规模较小的相同问题,各个击破,分而治之。 分治法能够解决的问题有以下几个特征: 1、该问题的规模缩小到一...原创 2019-03-03 10:51:17 · 2444 阅读 · 1 评论 -
算法-蛮力法-排序问题
蛮力法是一种直接的设计策略,蛮力法也叫暴力法,枚举法,或穷举法,他解决问题比较直接,常常根据问题直接求解,逐一列举并处理问题。下面是两种排序法。效率不高,但是简单。 选择排序 选择排序的基本思想是:对于n个元素的序列进行n-1趟排序,第一趟排序对于序列从头到尾扫描,找到最小的元素与第一个元素交换,第二趟,从第二个元素进行扫描,也是找到最小的一个元素,与第二个元素...原创 2019-02-26 17:19:38 · 1472 阅读 · 0 评论 -
算法-蛮力法-最近对问题
最近对问题 在n个点中,距离最近的两个点,在二维坐标平面中,两点分别是a(x1,y1),b(x2,y2),则两点距离是 d=sqrt((x1-x2)^2+(y1-y2)^2) 蛮力法,将平面内的n个点,两两组队,计算最小距离,注意,这儿没有方向,也就是说两点之间只需要求解一...原创 2019-02-28 19:23:48 · 5529 阅读 · 9 评论 -
杭电oj(2011-2015)
2011#include<iostream>#include<math.h>#include<iomanip>using namespace std;int main(){ int m; cin>>m; while(m--) { double sum=1; int n,...原创 2019-03-19 16:46:43 · 386 阅读 · 0 评论 -
算法-减治法-求中值和选择问题
减治法减治法是一种一般性的算法设计技术,它利用了一个问题给定实例的解和同样问题较小实例的解之间的关系。一旦建立了这样一种关系,我们既可以自顶至下(递归)也可以自底至上地运用它(非递归)。减治法有3种主要的变种:减一个常量,常常是减1(例如插入排序)。 减一个常因子,常常是减去因子2(例如折半查找)。 减可变规模(例如欧几里得算法)。这里用减可变规模算法来求中值问题和选择问题。...原创 2019-03-17 19:47:23 · 5561 阅读 · 0 评论 -
算法-分治法-杭电oj1007
Problem DescriptionHave you ever played quoit in a playground? Quoit is a game in which flat rings are pitched at some toys, with all the toys encircled awarded.In the field of Cyberground, the po...原创 2019-03-12 17:21:44 · 866 阅读 · 0 评论 -
算法-分治法-循环赛的日程安排
问题:设有n=2^k个选手参加循环赛,要求设计一个满足以下要求比赛日程表:1)每个选手必须与其它n-1个选手各赛一次;2)每个选手一天只能赛一次。按照上面的要求,可以将比赛表设计成一个n行n-1列的二维表,其中第i行第j列的元素表示和第i个选手在第j天比赛的选手号,也就是对手。采用分治策略,可将所有参加比赛的选手分成两部分,n=2^k个选手的比赛日程表就可以通过n=2^(k-1)个...原创 2019-03-17 10:56:19 · 2623 阅读 · 0 评论 -
算法-时钟问题-杭电1006
Problem DescriptionThe three hands of the clock are rotating every second and meeting each other many times everyday. Finally, they get bored of this and each of them would like to stay away from t...原创 2019-03-12 16:58:08 · 1074 阅读 · 0 评论 -
QT象棋练习(3)-绘制棋盘
新建项目新建一个空项目。然后新建文件。 首先新建一个主函数main.cpp文件。然后新建一个Board.cpp文件来绘制棋盘。注意,Board是继承QWidget。代码编写主函数#include<QApplication>#include"Boar...原创 2019-03-20 20:26:39 · 1501 阅读 · 0 评论 -
算法-分治法-凸包问题
蛮力法的凸包问题:https://blog.csdn.net/qq_40452317/article/details/87976833第一步、把给定的点集中在横坐标上排序,就能得到p[0]和p[n-1]的直线,将求解凸包问题分解为求解上凸包和下凸包两个问题。//第一步:排序//排序,如果,横坐标相同,则按照纵坐标排序int compxy(point a,point b){ i...原创 2019-03-16 21:16:30 · 1545 阅读 · 1 评论 -
算法-分治法-最近对问题
蛮力法的最近对问题:https://blog.csdn.net/qq_40452317/article/details/88040973用分治法解决问题就是将集合s分为两个集合s1和s2。每个解合都有n/2个点,接着在子集和中递归求解最近的点。一维情况为了简单化问题,我们先考虑一维情形,即所有的点都在x轴上(假如顺序是有序的,也可以排好序,为简单,直接输入有序序列),x轴上某个点m将集...原创 2019-03-11 21:23:50 · 14261 阅读 · 1 评论 -
算法-蛮力法-凸包问题
凸包的定义就是,由平面上n个点组成的集合,,其凸包就是包含这些点的最小凸边多边形。 给定二维平面上的点集,凸包就是将最外层的点连接起来构成的凸边多边形,它能包含点集中所有的点。 举例,如果是两个点,则包含这两点的凸包就是他们构成的线段;如果是三点,且不共线,则凸包就是以这三个点构成的三角形,共线,则是三点构成的直线,如果三点以上,如下图,...原创 2019-02-27 17:22:28 · 7087 阅读 · 0 评论