C/C++
PETERMAOSX
哎呦,不错哦!
展开
-
C++ 一个学生宿舍信息管理系统大作业
#include<iostream>#include<string>#include<fstream>#include<iomanip>using namespace std;class Student{public: string m_number; //学号 string m_name; //姓名 string m_age; //年龄 string m_sex; //性别 string m_college; //学院原创 2021-07-06 14:45:17 · 2187 阅读 · 1 评论 -
UE4 用C++让Pawn动起来
用C++让Pawn动起来首先新建一个C++项目打开C++类,然后新建一个C++类选择Pawn设置一个类名,并且可以选择新建一个文件夹创建完成后就会打开VisualStudio会看到有两个文件。一个是.cpp,一个是.h开始写代码需要在代码里面写的东西,就是让角色动起来(Static Mesh和Camera) 这些在蓝图里面添加会更合适所以在代码里面就实现前后左右走就可以了。设置Axis打开编辑 - 项目设置 - 引擎 - 输入写代码原创 2020-11-28 17:49:08 · 1529 阅读 · 0 评论 -
C++ 简单的信息管理系统
一次比较综合性的大作业主要使用的就是通过Vector容器来处理数据也复习了很多关于C++的一些知识比如 类,多态,指针之类的#include<iostream>#include<string>#include<vector> //容器#include<fstream>using namespace std;/*summaryStudent类: 这个类代表的是每一个学生的信息,包括基本信息(姓名,年龄,性别,报名情况等) 用一个vect原创 2020-07-05 02:17:14 · 1618 阅读 · 0 评论 -
C++ - 引用的概念
在C/C++语言里面,引用的作用就是起外号。比如#include<iostream>using namespace std;int main(){ int i=1; int i2 = 2; int &j = i; int k = i2; int &m = j; int &n = m; k = 3; cout<<"刚开始: "&...原创 2020-02-07 02:41:24 · 247 阅读 · 0 评论 -
C++ 动态查找问题
查找类问题:1、数字查找:给你一堆数字,让你在其中查找x是否存在2、字符串查找:给你很多字符串,让你在其中找出字符串s是否存在面对大量的数据量,很多人的想法是先sort排序,然后二分查找。可以使用map来做。问题:有n个整数的集合,想让你从中找出x是否存在。输入描述:第一行输入一个正整数n第二行输入n个正整数第三行输入一个q,表示查询次数接下来输入q行,每行一个正整数x,查询x是...原创 2020-01-14 20:58:59 · 372 阅读 · 0 评论 -
算法-找出整数数组中的第K大的元素
//// t14.cpp// C++PLUS//// Created by mac on 2019/12/16.// Copyright © 2019 mac. All rights reserved.//#include <stdio.h>#include<iostream>#include<stdlib.h>#include&l...原创 2019-12-16 16:32:50 · 251 阅读 · 0 评论 -
算法-找出数组中的唯一值
在一个数组中,只有一个数有一个。其他的都是成对的有两个。比如 {99,22,99}这个数组里面只有22一个是单独的,需要找出这个数。使用到了^运算返回这两个数的差的绝对值例如: 4 ^ 2 返回 287 ^ 99 返回 12如果是 99 ^ 99 就返回0//// t12_.cpp// C++PLUS//// Created by mac on 2019/12/16....原创 2019-12-16 15:55:52 · 1524 阅读 · 1 评论 -
算法-字符串的去重
字符串去重分3种情况1、去掉重复的字符,并且只保留一个2、去掉重复的字符,如果有多个的保留两个3、去掉重复的字符,重复的一个都不保留对应第一种情况的解法:只需要对字符串进行遍历,如果遍历到重复的字符就跳过,如果遍历到不重复的就赋值第二种:需要在第一种情况下加一个判断bool变量,用于判断是否已经加了一个。第三种:还是判断当前遍历的位置和下一个位置进行判断,不过需要判断两次,因为如...原创 2019-12-16 12:03:35 · 2095 阅读 · 0 评论 -
算法-字符串的大小写排序
在一串有大写字符也有小写字符的字符串中,需要将大写字符放在前面,小写字符放在后面#include<iostream>using namespace std;void Solution(char * str){ int index = -1; //记录标记 int pos = 0; //遍历标记 for(;str[pos]!= '\0';pos++){ if(str...原创 2019-12-15 19:40:07 · 506 阅读 · 0 评论 -
算法-字符串反转
字符串反转的问题采用遍历的方法来//// t08_.cpp// C++PLUS//// Created by mac on 2019/12/15.// Copyright © 2019 mac. All rights reserved.//#include <stdio.h>#include<iostream>using namespace ...原创 2019-12-15 16:49:51 · 193 阅读 · 0 评论 -
算法-字符串_统计输入每个字符出现的次数
输入一串字符串用回车结束,输出输入的字符串中的各个字母的出现个数//// t08.cpp// C++PLUS//// Created by mac on 2019/12/15.// Copyright © 2019 mac. All rights reserved.//#include <stdio.h>#include<iostream>us...原创 2019-12-15 16:06:52 · 658 阅读 · 0 评论 -
算法-字符串的初级处理
初级处理的功能有递归求字符串的长度求字符串最后一个单词的长度(有无长度)//// t07_.cpp// C++PLUS//// Created by mac on 2019/12/15.// Copyright © 2019 mac. All rights reserved.//#include <stdio.h>#include<iostream...原创 2019-12-15 15:38:48 · 160 阅读 · 0 评论 -
爬楼梯问题
题目是这样的:一个有10个台阶的楼梯,人可以一次上一个,或者2个。请问有多少种方法上去。当楼梯级数很小时,凭借我们大脑弱小的计算能力,可以很快的得出答案。例如台阶数为1时,当然只有一种方法;台阶数为二时,有两种方法(11或2);台阶数为三时,有三种方法(111,12,21)。再随着台阶数的增长,我们会惊奇的发现☞天呐!我的脑子越来越不够用了?!如果台阶有20级,如果从前往后干,你慢慢从垮一级或...原创 2019-12-13 17:47:48 · 427 阅读 · 0 评论 -
C++练习题-设计一个密码检测程序
//// t06.cpp// C++PLUS//// Created by mac on 2019/12/10.// Copyright © 2019 mac. All rights reserved.//#include <stdio.h>#include<iostream>#include<string>using name...原创 2019-12-10 22:06:16 · 1382 阅读 · 0 评论 -
求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字。
接这个问题首先想到的方法是分治法,要求的是一串累加的数字。就需要一个变量来存储当前的总和,然后再依次计算。那么还有一个需要的变量就是如何让输入的数字有a aa aaa …这种格式。如果a=2 n=4的话,需要求的就是2 + 22 + 222 + 2222可以发现 2 = 010 + 2 22 = 210 + 2 222 = 22 * 10 + 2 2222=222*10+2有了这...原创 2019-11-30 16:53:35 · 4237 阅读 · 2 评论 -
C++-unordered_map的查找
在unordered_map中实现了一个哈希表,可以实现高效的查找若要判断一个值是不是在哈希表中使用mp.find(value) != mp.end()就可以知道你所查找的value是不是在mp中了#include<iostream>#include<vector>#include<map>#include<unordered_map>...原创 2019-10-25 19:41:00 · 12910 阅读 · 0 评论 -
算法-并查集“优化版”(C++)
在简单版本上面进行了一点改进,可以使时间复杂度得到差不多一半以上的提升#include<iostream>using namespace std;class UF2{private: int *data; int count;public: UF2(int n) { data = new int[n]; count = n; for(int i = 0;i...原创 2019-08-19 00:35:03 · 204 阅读 · 0 评论 -
算法-广度搜索和解决最短路径(C++)
广度搜索也叫层度搜索,是一层为单位来进行遍历图或者树的。一次将一个图的所有相邻节点遍历,之后再遍历刚刚遍历的相邻节点的相邻节点广度优先遍历求出了无权图的最短路径主要思想是:先将根节点推入队列中,然后再将根节点当做遍历的对象取出来。再将所有与根节点相邻的节点取出来加入到队列中,然后将队首的元素拿出来最为遍历的对象,然后将这个元素的所有相邻节点并且还未被遍历过的节点加入到队列中。然后再取出队首...原创 2019-08-22 23:40:34 · 612 阅读 · 0 评论 -
算法导论-快速排序算法
对于A数组,分解成A[p…r]-> A[p…q-1] A[P] A[q+1…r]伪代码:QUICKSORT(A,p,r)if p<r: q=PARTITION(A,p,r) QUICKSORT(A,p,q-1) QUICKSORT(A,q+1,r)PAETITION(A,p,r)x = A[r]i = p -1for j=p to r-1: if A[j] &l...原创 2019-09-15 14:37:39 · 180 阅读 · 0 评论 -
算法导论-计数排序
计数排序并不基于元素的比较,而是一种利用数组下标来确定元素正确位置的算法。计数排序的核心在于将输入的数据值转化为键值存储在额外开辟的数组空间中。作为一种线性时间复杂度的排序,计数排序算法的时间复杂度O(n + k)(k为整数的范围)。简单描述就是,在一个有确定范围的整数空间中,建立一个长度更大的数组,如当输入的元素是 n 个 0 到 k 之间的整数时,建立一个长度大于等于k的数组。该数组的每一...原创 2019-09-15 20:15:57 · 221 阅读 · 0 评论 -
斐波那契数列-C
int main(){ int i; int a[40]; a[0] = 0; a[1] = 1; printf("%d",a[0]); printf("%d",a[1]); for(i=2;i<40;i++){ a[i] = a[i-1]+a[i-2]; printf("%d",a[i]); }...原创 2019-09-16 22:46:42 · 109 阅读 · 0 评论 -
数据结构-小链表
创建了3个元素的小链表#include<iostream>using namespace std;class IntNode {private: public: int info; IntNode* next; IntNode() { this->next = 0; } IntNode(int info,IntNode* next = 0) { ...原创 2019-09-18 20:55:07 · 152 阅读 · 0 评论 -
数据结构-链表
#include<iostream>using namespace std;class IntNode {private: public: int info; IntNode* next; IntNode() { this->next = NULL; } IntNode(int info,IntNode* next = NULL) { this-&...原创 2019-09-18 21:46:02 · 94 阅读 · 0 评论 -
C++-双链表-一(增,删)
//// doubleLisk.cpp// algorithm//// Created by mac on 2019/9/18.// Copyright © 2019 Mao. All rights reserved.//#include <stdio.h>#include<iostream>using namespace std;clas...原创 2019-09-19 13:56:28 · 234 阅读 · 0 评论 -
c++使用节点来自定义一个二叉树
分别使用了结构体和类来创建一个节点发现使用结构体和类的一个很大的区别就是在结构体当中,所有的属性或者方法都是Public的,在类当中就可以自己来定义是否private还有一个不同,就是在创建类的对象的时候,c++不像java一样可以直接new出来而是要加一个指针,并且在使用指针对象的时候还得加上一个&取地址感觉C++难学不是吹的,感觉规则好多啊。。。。。其实其他的链表啊,栈啊,...原创 2019-10-06 19:10:01 · 1320 阅读 · 0 评论 -
C++-STL遍历的几种方式
1、用for循环来遍历#include<iostream>#include<array>using namespace std;int main(){ array<int, 10> items {10,9,8,7,6,5,4,3,2,1}; for(int i=0;i<items.size();i++){ ...原创 2019-10-10 16:45:42 · 1545 阅读 · 1 评论 -
C++-vector
vector就像Python里面的列表一样常用方法push_back() 在数组的最后添加一个数据pop_back() 去掉数组的最后一个数据at() 得到编号位置的数据begin() 得到数组头的指针end() 得到数组的最后一个单元+1的指针front() 得到数组头的引用back...原创 2019-10-10 22:32:32 · 81 阅读 · 0 评论 -
算法-通过深度遍历寻找图节点的路径(C++)
在图中遇到需要返回当前寻找的节点的路径问题的解决方法:1、设置一个新from数组来存储父节点2、在深度遍历的时候,将父节点存储到from中3、将from换成stack(栈)来存储,然后通过一系列的栈操作来实现将栈中的值添加到一个新的vector向量中3、编写show函数来展示新的vector向量的值代码实现template <class Graph> //查看路径cl...原创 2019-08-22 23:26:44 · 885 阅读 · 0 评论 -
算法-并查集"简单版本"(C++)
并查集可以用来解决连接问题。比如QQ上的好友关系网一样,可以随机抽取两个人,看看他们两个是不是有好友关系。#include<iostream>#include<cassert>using namespace std;class UF{private: int *id; int count;public: UF(int n){ id = new int...原创 2019-08-18 02:12:01 · 326 阅读 · 0 评论 -
算法-二叉搜索树的完全实现“增删改查”(C++)
这是完整的代码,其他分功能的叙述在其他文章里//// BST.cpp// algorithm//// Created by Mao on 2019/8/14.// Copyright © 2019 Mao. All rights reserved.////实现二分搜索树#include <stdio.h>#include <iostream>...原创 2019-08-17 02:41:32 · 543 阅读 · 0 评论 -
c++ 查看算法所使用的时间的实现
template <class T> //(算法名称,使用算法的函数,数组,数量) void testSort(string sortName,void(*sort)(T[],int),T arr[],int n){ clock_t startTime = clock(); sort(arr,n); clock_t endTi...原创 2019-08-07 21:40:27 · 855 阅读 · 0 评论 -
c++ 随机生成数算法
#include <iostream>#include <ctime>using namespace std;namespace SortTestHepler { int* generateRandomArray(int n,int rangeL,int rangeR){ assert(rangeL <= rangeR); ...原创 2019-08-07 21:13:29 · 1143 阅读 · 0 评论 -
c++ 自定数据类型
先写一个头文件这里是使用了结构体来构建一个Student类型//// Student.h// algorithm//// Created by Mao on 2019/8/7.// Copyright © 2019 Mao. All rights reserved.//#ifndef Student_h#define Student_h#endif /* Stud...原创 2019-08-07 20:36:47 · 119 阅读 · 0 评论 -
c++函数模板的使用
这里的template<>尖括号里面可以是class 也可以是 typename#include<iostream>using namespace std;//使用模板template<class T>//这里的参数 arr是数组 n是数组的长度//这里T 是函数模板 可以传入int 也可以传入 floatvoid selection(T a...原创 2019-08-07 19:52:20 · 269 阅读 · 0 评论 -
算法-在并查集中的一些优化(C++)
压缩路径方法1、将find函数的链式查找转换成树形查找int find(int p){ assert(p>=0 && p<count); //count是并查集的size while(p != father[p]){ father[p] = father[father[p]]; //如果节点的父节点不是自己(这个节点不是root节点),就向上移...原创 2019-08-19 14:43:33 · 145 阅读 · 0 评论 -
算法-二分查找法(C++)
原理算法实现template <class T>int binarySearch(T arr[],int n,T target){//在arr[l.....r]之中查找target int l = 0,r = n-1 while (l<=r){ //int mid = (l+r) /2; int mid = l+(r-l...原创 2019-08-14 12:29:31 · 197 阅读 · 0 评论 -
c++ 中的swap 函数的用法
c++ 中的swap 函数是在 std标准库里的函数可以用来交换两个值#include<iostream>using namespace std;//测试程序int main(){ int a = 10; int b = 99; cout<<"Before: "<<a<<" "<<b<<...原创 2019-08-07 12:00:37 · 6269 阅读 · 0 评论 -
算法-选择排序算法 (C++)
#include<iostream>using namespace std;void selection(int arr[],int n){ for (int i =0;i<n ; i++){ //寻找[i,n)区间里的最小值 int minIndex = i; for (int j = i +1 ;j<n;j++)...原创 2019-08-07 11:08:18 · 146 阅读 · 0 评论 -
算法-原地堆排序(C++)
原地堆排序可比正常的堆排序简单多了正常的堆排序需要自己首先实现一个堆出来,然后再将数组元素加入到堆中去而原地堆排序是直接将数组当成一个堆来进行排序,省了实现堆的过程简单却又不失精髓//// heapSort_.cpp// algorithm//// Created by Mao on 2019/8/13.// Copyright © 2019 Mao. All right...原创 2019-08-13 21:06:05 · 302 阅读 · 0 评论 -
算法-归并排序(C++)
归并排序算法采用的是分治算法,即把两个(或两个以上)有序表合并成一个新的有序表,即把待排序的序列分成若干个子序列,每个子序列都是有序的,然后把有序子序列合并成整体有序序列,这个过程也称为2-路归并.一般来说,n个数据大致会分为logN层,每层执行merge的总复杂度为O(n), 所以总的复杂度为O(nlogn)。详细解释在注解里面#include<iostream>#includ...原创 2019-08-08 21:12:12 · 107 阅读 · 0 评论