![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++
1
BigZong
这个作者很懒,什么都没留下…
展开
-
String——之字符串中找单词
给出一个字符串和一个字符,找到这个字符串里面出现这个字符的次数,很显然,只需要遍历每一个字符,发现了这个字符就让变量frequency加一。#include <stdio.h>int main(){ char str[1000], ch; int i, frequency = 0; printf("输入字符串: "); fgets(str, (si...原创 2019-01-03 16:36:45 · 6533 阅读 · 0 评论 -
继承
#include<iostream>using namespace std;class Person{public: Person(string name1,string id_number1,int age1); ~Person(); void show();private: string name; string id_nu...原创 2019-06-13 17:51:05 · 72 阅读 · 0 评论 -
关于c++引用(函数实参和形参)
图中有一处错误 函数 形参1 是free_throws &target对于函数调用2,如果函数写成free_throws accumulate(形参1,形参2);会报错,没有加引用&对于函数调用1,无论加还是不加,都不会报错。我们的解释是:在调用2中,对于实参1,在free_throws (不加&)accumulate(形参1,形参2)情况下,他返回的是t...转载 2019-06-13 17:52:42 · 1941 阅读 · 0 评论 -
QT 基本图形绘制
1.告诉绘制引擎一些东西 QPainter::Antialiasing 在可能的情况下,反锯齿 QPainter::TextAntialiasing 在可能的情况下,文字反锯齿 QPainter::SmoothPixmapTransform 采用平滑的Pixmap变换算法2.绘制函数 3.风格1)画刷风格...转载 2019-06-14 18:37:23 · 4474 阅读 · 0 评论 -
C++字符串反转
1#include<iostream>#include<cstring>using namespace std;int main(){ char num[]= "abcde" ; strrev(num); cout<<num<<endl; return 0;}2#include<alg...原创 2019-07-18 13:22:14 · 1946 阅读 · 0 评论 -
C++ QT开发人机象棋(大纲)
目录1系统需求分析:1.1游戏简介:1.2机器下棋史:1.3研究内容:1.4编译环境:QT2 总体设计2.1系统功能分析:1.界面表示2.鼠标点击3.棋子走法4.评估函数5.搜索算法6.剪枝算法2.2系统功能模块划分与设计1系统需求分析:1.1游戏简介:象棋以充满趣味性的游戏形式兴起并延续至今,在近现代...原创 2019-07-28 16:08:03 · 1532 阅读 · 0 评论 -
C++ QT开发人机象棋(界面表示)
目录1.1界面表示:1.1.1棋盘表示:1.1.2.棋子表示:2.1界面表示:2.1.1棋盘绘制一:作用二:执行时间2.1.2棋子绘制1.1界面表示:1.1.1棋盘表示:使用十条横线与九条竖线在QT软件下绘制棋盘,在画竖线的时候为了显示出河界,对第2到第8列进行特判。1.1.2.棋子表示:每一个棋子都有一些信息,对于...原创 2019-07-28 16:14:07 · 1178 阅读 · 0 评论 -
C++ QT开发人机象棋(鼠标点击)
鼠标点击棋子,棋子能够进行相应的操作。mouseReleaseEvent(QMouseEvent *ev)鼠标点击了以后,我们要知道鼠标点击的这个棋子的横纵坐标和这一点的棋子的id,这个时候需要调用mouseReleaseEvent(QMouseEvent *ev);函数,这里的ev存放的就是现在的点击的棋子的位置,接下来我们要做的就是获取鼠标点击位置的横纵坐标和id。click(QP...原创 2019-07-28 16:17:53 · 1071 阅读 · 0 评论 -
C++ QT开发人机象棋(棋子走法)
目录1:选择下棋的棋子:2:尝试着下棋:3:移动棋子:4.规则1.将:2.士:3.象:4.马:5.车:6.炮:7.兵:1:选择下棋的棋子:void Board::trySelectStone(int id){if(id == -1)return;...原创 2019-07-28 16:23:00 · 2635 阅读 · 0 评论 -
C++ QT开发人机象棋(评估函数)
每个棋子在当前点的所有可能走的情况用一个容器存储起来,根据搜索的层数输出相应的权值。在搜索到最底层的时候进行权值的判断,判断的最终结果为棋盘上面的黑棋的棋子分减去棋盘上面的红棋的棋子分。long long singleGame::calcScore(){ long long redTotalScore=0; long long blackTo...原创 2019-07-28 16:26:22 · 1056 阅读 · 0 评论 -
C++ QT开发人机象棋(搜索算法)
使用极大极小值算法,在满足电脑下棋的时候自己的局势能够获得最大权值的情况下判断在当前局势下的玩家的最小的权值,这样能够保证算法最优。先从一个故事说起,比如说现在有有一个小偷偷了一些物品,小明看到后跟小偷说如果小偷给他一部分东西他就不报警,并且小明只取一件物品,图中的三个箱子里面分别有两个不同价值的物品,那小偷也说了,你选择箱子,我给你拿物品,这个时候为了获得最大的利益,小明应该选择2号箱...原创 2019-07-28 16:28:34 · 975 阅读 · 0 评论 -
【C++学习】关于unsigned long long的输出问题
输出的时候可以使用 %llu 或者 %I64u原创 2019-04-03 11:47:25 · 21197 阅读 · 0 评论 -
C++ 内联函数和宏函数的优缺点
C++---内联函数和宏函数的优缺点 转载自:https://blog.csdn.net/qq_37934101/article/details/81266548 </div> <div ...转载 2019-04-08 15:47:45 · 501 阅读 · 0 评论 -
异或运算的作用
参与运算的两个值,如果两个相应bit位相同,则结果为0,否则为1。即: 0^0 = 0, 1^0 = 1, 0^1 = 1, 1^1 = 0按位异或的3个特点:(1) 0^0=0,0^1=1 0异或任何数=任何数(2) 1^0=1,1^1=0 1异或任何数-任何数取反(3) 任何数异或自己=把自己置0按位异或的几个常见用途:(1) ...转载 2019-01-21 09:44:51 · 1988 阅读 · 0 评论 -
C++ push方法与push_back方法 浅析
【摘要】push与push_back是STL中常见的方法,都是向数据结构中添加元素。初识STL,对于添加元素的方法以产生混淆,这里暂对两种方法作出比较分析。此外,本文还将简述push对应的stack与queue系列,常见方法的介绍,以及与push_back相对应的vector系列常见方法介绍。详见下文。list 也是使用 push_back .【正文】push_back 方法介绍...转载 2019-01-16 15:10:35 · 11274 阅读 · 0 评论 -
C++ STL算法
标准库定义了一组泛型算法:因为它们实现共同的操作,所以称之为“算法”;而“泛型”指的是它们可以操作在多种容器类型上,不但可作用于标准库类型,还可用在内置数组类型、甚至其他类型的序列上。大多数算法是通过遍历由两个迭代器标记的一段元素来实现其功能。使用泛型算法必须包含头文件 algorithm : #include <algorithm>标准库还定义了一组泛化的算术算法(gen...原创 2019-01-16 11:30:21 · 117 阅读 · 0 评论 -
pair常见用法详解
转载自:https://blog.csdn.net/qq_42232118/article/details/82078854当想要把两个元素绑在一起作为一个合成元素、又不想要因此定义结构体时,使用pair可以很方便地作为一个代替品也就是说,pair实际上可以看作一个内部有两个元素的结构体且这两个元素的类型是可以指定的struct pair{ typename1 fir...转载 2019-03-23 09:01:26 · 6564 阅读 · 0 评论 -
C++ (抽象、封装、继承、多态)面向对象程序设计的基本特征
1、抽象忽略与当前主题目标无关的方面:分为:1、数据抽象:描述某类对象的属性或状态2、代码抽象:某类对象的共同行为特征或具有的共同功能2、封装类是 面向对象程序设计语言中的一个概念。类是对某个对象的定义。它包含有关对象动作方式的信息,包括它的名称、方法、属性和事件。类成员有3种不同的访问权限: 1)公有( public )成员可以在类外访问。 2...原创 2019-04-08 15:21:30 · 514 阅读 · 0 评论 -
C++ 程序的结构特征
C++结构特性示例:#include<iostream>using namespace std;class A//声明一个类{private: int x,y,z;//声明类A的成员public: fun() { ...//声明类A的成员函数fun() }};int main(){ A a;//定义...原创 2019-04-08 15:30:56 · 541 阅读 · 0 评论 -
C++ const+指针
const可以与指针一起使用,组合情况可以分为三种:1、指向常量的指针const char *per="abcd";因为只指向常量,所以不能够改变指针所指的常量!per[0]='x'就是错的但是可以开边地址:比如per="bdes";2、常指针也就是说,指针指向地址。char* const pc="abcd";那么这种情况跟1的刚好相反3、指向常量的指针...原创 2019-04-08 15:41:57 · 122 阅读 · 0 评论 -
C++ QT开发人机象棋(剪枝算法)
改变singleGame()里面的_level的值为5的话,程序就会崩溃,很显然由于最大值最小值算法遍历整个棋盘几层的话时间复杂度十分的高,为了优化程序我们就应该减少程序的运行量,那么也就有了剪枝算法。极大值极小值搜索算法遍历棋盘的所有情况,有得判断是多余的,剪枝算法就是去除这一部分多余的计算按照极大值极小值算法的思想,我们子计算4的这一层的时候选择的应该是最小值,在计算...原创 2019-07-28 16:30:32 · 655 阅读 · 0 评论