![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
seen_in_hw
希望我能变厉害!!!成为大师!!!我放弃了很多看似很炫的技术而去探寻技术的本质,技术是用来提供服务的,所有的技术都离不开思想,而思想是最难掌握的,我们应该把更多的精力放在对于思想的探寻上
展开
-
C++语言实现双向链表(广州大学某次作业)
要求是:设计双向链表存储矩形的长跟宽,然后存下来面积,最后根据面积排序,要实现文件的IO#include<iostream>#include <fstream>using namespace std;class Node //组成双向链表的节点{ public: int lgth; //长度 int width; ...原创 2018-04-25 13:41:14 · 280 阅读 · 0 评论 -
【C++】:C++之this指针的作用
C++this指针的作用可以简介为如下。有类成员变量与局部变量冲突了,这时候给类成员变量前面加一个this以加区分比如说如下例子:class CStudent{ private: char *cname; int iage; float fscore; public: void Setname(char *cname){原创 2016-05-19 13:39:37 · 622 阅读 · 0 评论 -
【C++】:C++中的类成员访问权限
先举一个例子:#include <iostream>using namespace std;class CStudent{ private: char *cname; int iage; float fscore; public: void Setname(char *name){ cname原创 2016-05-19 13:13:42 · 1012 阅读 · 0 评论 -
【C++】:STL迭代器使用详解,很好很详细
写在前面,迭代器这种东西,就是为了使访问简单!!容器::iterator iter;for(iter= 容器.begin();iter!=容易.end();iter++){coutfirst等等之类的 //迭代器就是这么个套路}然后就是set,set就是一个集合,仅此而已,而其他的,像是map比较有意转载 2016-05-12 22:28:27 · 34747 阅读 · 5 评论 -
【C++】:C++之内联函数(inline)
C++内联函数我们可以这样理解,就是把函数直接换成代码直接运行,而不是调用 明白了这个特性我们就应该能理解,为什么内联函数都是需要模块比较小的,因为只有这样,我们才能更好的提升系统的性能,如果内联函数的模块比较大,这样会不划算。内联函数中inline关键字只能是在实现的函数名字前面声明,在函数定义时候生命相当于没有写一样。内联函数就是这么简单,下面看段代码:void swap(int &a, in原创 2016-05-18 23:38:05 · 406 阅读 · 0 评论 -
【C++】:C++之C++的引用
引用(Reference)是C++相对于C语言的又一个扩充。引用类似于指针,只是在声明的时候用 & 取代了 *。引用可以看做是被引用对象的一个别名,在声明引用时,必须同时对其进行初始化。引用的声明方法如下:类型标识符 &引用名 = 被引用对象[例1]C++引用示例:int a = 10;int &b = a;couta" "bendl;couta" "bendl;转载 2016-05-18 23:32:06 · 3094 阅读 · 2 评论 -
【C++】:C++中的引用
C++中的引用是实现了把一个值指向一块内存,相当于为一块内存的值起了多个名字,这就是引用的作用,这时候修改一个值会是直接对内存进行修改,所以其他的名字的值也会跟着改变。 最基本的语法是这样: int a = 3; int &b = a; //这样就把b指向了a的内存对b修改也就相当于对a进行修改了在函数里面 int function(int &b)相当于把b指针传了进去,传的是原创 2016-05-18 23:29:37 · 388 阅读 · 0 评论 -
【C/C++】:sizeof详解
sizeof是何方神圣sizeof乃C/C++中的一个操作符(operator)是也,简单的说其作用就是返回一个对象或者类型所占的内存字节数。MSDN上的解释为:The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type (including aggrega转载 2016-05-18 22:43:46 · 387 阅读 · 0 评论 -
【C++】:C++中的static关键字
这个里面的static关键字很容易理解,大致是以下一些东西。 1,不初始化时自动初始化为02,程序调用时只分配一次内存,并且会保留上次的结果举两个很简单的程序例子:#include <iostream>#include <string>using namespace std;static int a;void main(){ cout<<a;}// 结果是 a = 0,a被初始化原创 2016-05-18 21:40:48 · 264 阅读 · 0 评论 -
【C++】:C++的一道二维数组问题探究
题目如下: 已知: int a[3][2] = {3,2,7}; 问 a[0][2] = ? 答案是7这个问题可以这么来解释,二维数组是一维存的,并且都是通过索引去寻找这些数的,所以可以通过这种方式来寻找这些数按道理来说是不会出现a[0][2]这种数的,但是这里却出现了,并且没有报错,这是因为越界的地方会接着往下读,这里接着3,2,7中的2往下读就是7,所以结果为7如果是第二行,就在第二行结原创 2016-05-18 21:10:44 · 370 阅读 · 0 评论 -
【C++】:C++函数重载的映射机制(内容较深)
——每个现象后面都隐藏一个本质,关键在于我们是否去挖掘写在前面:函数重载的重要性不言而明,但是你知道C++中函数重载是如何实现的呢(虽然本文谈的是C++中函数重载的实现,但我想其它语言也是类似的)?这个可以分解为下面两个问题1、声明/定义重载函数时,是如何解决命名冲突的?(抛开函数重载不谈,using就是一种解决命名冲突的方法,解决命名冲突还有很多其它的方法,这里就不论述了转载 2016-05-18 20:47:09 · 399 阅读 · 1 评论 -
【C++】:C++函数重载
把复杂的知识简单化,就是我写博客的目的 -Seen首先要教各位看官如何使用C++的这个特性,方法很简单,就是写两个函数,里面参数不同,然后C++这种语言编译器就能够自动的解析这两个函数,然后进行输出我们来看一个例子:#include <iostream>#include <string>u原创 2016-05-18 20:45:23 · 560 阅读 · 0 评论 -
【C/C++】:如何获得一个float数的小数位数?
给出一个简单例子,给出a = 3.8766,如何获得a的小数位? 正确的结果应该是4给出思路: 1,先分离出小数位 2,每次循环给小数位乘上10,如果一个数a是整数,那么就会满足 a - (int)a ==0;通过这种方式我们就能判断乘上10之后该数是不是整数了,从而获得小数位数代码:#include <iostream>using namespace std;int main(){原创 2016-05-12 21:59:39 · 15895 阅读 · 8 评论 -
【C++】:C++中的继承权限和继承方式
这个很简单,就是Private都只能通过父类的函数去访问,其他的都跟随继承方式掉级就可以了,用的最多的还是public继承C++继承的一般语法为:class 派生类名:[继承方式] 基类名{ 派生类新增加的成员};继承方式限定了基类成员在派生类中的访问权限,包括 public(公有的)、private(私有的)和 protected(受保护的)。此项是可选的,如果不写转载 2016-05-19 13:45:04 · 583 阅读 · 0 评论 -
【C++】:C++之继承
写这篇文章的目的非常简单,别人给了我一个类,我如何在这个类的基础上做一些修改,然后加入自己的部分?并且访问对方的成员?这是一个挺难的问题然而下面已经实现了第一个类是CStudent,然后用CSoft继承了CStudent。 这样在CStudent的基础上进行了加入专业的选项,这样就可以加上专业一项,并且可以把类进行修改完善。下面给个代码:#include <iostream>using name原创 2016-05-19 14:01:11 · 784 阅读 · 1 评论 -
【C++】:C++之函数模板
函数模板简介C++函数模板很简单,就是用一个T代替了很多类似的数据变量,以后遇到诸如多个int,float等类型数据的相似操作时,就能够用函数模板解决问题,函数模板关键用了这么一句话template<typename T>这句话实现了把多个数据类型抽像成T,当然,这里用其他的字母代替都可以,比如说Int,float,double等都抽象成了T代码:#include <iostream>using原创 2016-05-19 14:53:09 · 573 阅读 · 0 评论 -
C语言系列之C语言如何返回字符串数组
问题出在如此想了一下C语言如何实现返回一个字符串数组,答之:没有这种功能,但是吧,还是有办法实现的。那就是指向数组的指针解释char **p 这个p就是指向数组的指针,它指向一个数组的起始地址. 想要引用里面的数组时,直接使用p[i] 即可。我们知道C语言里面的各种数组,本质上都是指针,并且函数其实也是不能把数组当作参数的,实际上都是把数组的地址传进去了,实际上就是指向数组地址的指针。说了这么多原创 2017-10-12 15:26:13 · 7255 阅读 · 2 评论 -
哈希表的应用之1:用哈希法统计大数据词频
问题背景给出一篇文章,默认已经分好词了(一个单词一行),问如何统计各个单词的词频?这个问题可以延伸出其他几个问题 1,热搜的关键词是如何出来的,就是给你一堆的大数据量的词,问你如何从中找出词频最高的几个词。 2,给你一堆大数据量的单词列表,问某个单词第一次出现的位置 3,大数据去重,用哈希表存储后的数据就是去重了的以上几个问题都可以通过哈希表解决,同时也有取代它的方法,那就是字典树解决问题我们原创 2017-10-12 14:07:43 · 9265 阅读 · 0 评论 -
【经典算法】:图的深度优先搜索与广度优先搜索的实现
非常简单,深度优先搜索可以用递归或者栈来实现,广度优先搜索用队列来实现,仅仅是数据结构换了一下而已,其他任何的东西都没有变。实现样例代码:#include<iostream>#include<queue>#include<stack>#include<stdlib.h>#define MAX 100using namespace std;typedef struct { int原创 2017-10-09 11:26:13 · 815 阅读 · 0 评论 -
非等概率随机算法
前言自己做了一个非等概率的随机算法的封装,然后后面人的可以借用。/*probability是概率,最好是两位小数,然后返回1的概率是probability,返回0的概率是1-probability如果是三元组或者是多元组,多返回几个值就可以了*/int NotEqualProbability(float probability){ int gap = (int)(probabilit原创 2017-09-19 15:56:57 · 1113 阅读 · 0 评论 -
由小黄车的七夕集卡来谈随机算法及相关实现
这篇文章讲了什么讲了我对小黄车公司的七夕集卡活动的不满意,因为我集了那么久都没有集到那个二八车卡,之后我就自己在分析关于这个的一些事情,后来自己实现了一个类似的坑爹的随机模型。代码1先来看小黄车的集卡活动,小黄车集卡活动其他的四张卡都是非常好集的,简直不要太简单了。。。然后就是那个二八车非常难以集到,估计小黄车的数量要上千万辆吧,但是集齐的只有不到30万人,这个比例大概是几十比一的比例。于是我就自己原创 2017-09-19 15:19:46 · 892 阅读 · 0 评论 -
【C++】:拷贝构造函数
一. 什么是拷贝构造函数首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:[c-sharp] view plain copy int a = 100; int b = a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。[c-sharp] view转载 2017-03-16 04:24:04 · 383 阅读 · 0 评论 -
【C++】:C++泛型基础
泛型的基本思想:泛型编程(Generic Programming)是一种语言机制,通过它可以实现一个标准的容器库。像类一样,泛型也是一种抽象数据类型,但是泛型不属于面向对象,它是面向对象的补充和发展。在面向对象编程中,当算法与数据类型有关时,面向对象在对算法的抽象描述方面存在一些缺陷。比如对栈的描述:class stack{ push(参数类型) //入栈算法转载 2017-03-16 03:57:13 · 344 阅读 · 0 评论 -
数组中出现超过一半的数字
题目1370:数组中出现次数超过一半的数字时间限制:1 秒内存限制:32 兆特殊判题:否提交:3397解决:994 题目描述: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。 输入: 每个测试案例包括2行: 第一行输入一个整数n(1<=n<=100原创 2017-03-22 17:38:58 · 593 阅读 · 0 评论 -
[九度OJ]: 1039 Zero-complexity Transposition
这道题很简单,就是问一个很长的数组如何反序输出。 通过代码如下:注意申明是长数组型 还有一种方法用String数组存储也可以#include <iostream>using namespace std;int main(){ int n; while (cin >> n){ long long int a[10000]; for (int i原创 2017-03-21 21:24:29 · 387 阅读 · 0 评论 -
【经典算法】:并查集详解
并查集最经典的问题就是找朋友的圈子,见小米的一道面试题,不得不说这些题都是比较简单的。并查集的经典思路就是用pre数组记录掌门人,然后不断的找最大的掌门人,并且同时压缩状态。详情介绍见下面的:并查集是我暑假从高手那里学到的一招,觉得真是太精妙的设计了。以前我无法解决的一类问题竟然可以用如此简单高效的方法搞定。不分享出来真是对不起party了。(party:我靠,关我转载 2016-07-12 20:32:00 · 502 阅读 · 0 评论 -
【C/C++】:string到double和string到int的转换
直接用我下的下面两个函数即可double StringToDouble(string s){ double dblValue = atof(const_cast<const char *>(s.c_str())); return dblValue;}int StringToInt(string s){ stringstream ss; ss原创 2016-06-25 23:58:11 · 2593 阅读 · 1 评论 -
【C/C++】:函数返回结构体的写法
用结构体去定义函数,这样就能返回结构体了,这是函数的基本用法示例:typedef struct data{ //somedata }FUNCTION_STRUCT;FUNCTION_STRUCT NODE_PROCESS(这里传参数){ //函数 FUNCTION_STRUCT temp; // something action here retu原创 2016-06-25 23:53:50 · 10253 阅读 · 0 评论 -
【C++】:关于C++的这些概念你知道吗?
1,内联函数2,函数重载 与 函数模板 类模版3,引用4,类成员的访问权限5 , 内存模型6,this指针7,多态性与虚函数原创 2016-05-19 15:04:40 · 480 阅读 · 0 评论 -
【数据处理3】:缺失值,数据规范化,相关系数,卡方检验
缺失值的处理方法:1,忽略元组2,人工填写缺失值3,使用全局变量填充空缺值4,使用与给定元组属同一类所有样本的平均值5,使用最可能的值填充缺失值,像使用贝叶斯公式或者是决策树数据规范化的方法:1,最小-最大规范化这种方法没啥好说的,一个公式解决 V‘ = (v-minA)*(new_maxA-new_minA)/(maxA-minA);2,z-sco原创 2016-05-16 16:46:07 · 3900 阅读 · 0 评论 -
【设计模式】:23种设计模式
目录创建型1. Factory Method(工厂方法)2. Abstract Factory(抽象工厂)3. Builder(建造者)4. Prototype(原型)5. Singleton(单例)结构型6. Adapter Class/Object(适配器)7. Bridge(桥接)8. Composite(组合)9. Decorator(装饰)转载 2016-05-13 21:57:10 · 381 阅读 · 0 评论 -
【C++解密】:C++不能直接给文件中写入数字怎么办
长篇大论,不如干货 ———– 写博客的初衷即是如此正文: 在C++编程中,我们总会遇到这么一种情况,生成了int型数据,想把它写进文件,程序写完后也不会报错,但是打开txt文件时就会出现文件打不开的情况,这时候不容易发现的一个错误就是写入的时候写入数据的类型是int型,这种数据类型,不能直接写入,只有char型的数据才能写入。这原创 2016-03-16 17:16:22 · 2380 阅读 · 0 评论 -
【C++】:用sort对string类型进行排序
前言这个问题来自于leetcode上面的一道题 Valid AnagramGiven two strings s and t, write a function to determine if t is an anagram of s.For example, s = “anagram”, t = “nagaram”, return true. s = “rat”, t = “car”, re原创 2016-01-07 12:55:47 · 49914 阅读 · 4 评论 -
【经典算法】:如何在一个函数里面返回多个值的实现
不要被标题党给忽悠的多么高端,我这里只想告诉大家一个非常简单的道理,非常简答 - -用指针!比如说在函数外定义了变量,然后传入该变量的地址,这样通过指针变换就能对该变量进行处理了,也就是变相的实现了给一个函数返回多个值下面举个详细的例子:#include <iostream>using namespace std;int ast(int a,int b,int *c,int *d){ *原创 2015-12-13 23:39:11 · 4833 阅读 · 0 评论 -
dos中如何编译机器码
可能有人还不知道怎样在DOS下debug一段汇编机器码,下面附运行调试方法: 1.在桌面上新建一个文本文档,命名为abc.txt 2.打开abc.txt,将上面的红色代码粘贴进去,然后保存 3.打开一个DOS窗口(汗,什么?你的电脑上没有?开始/运行,在运行对话框中输入cmd回车即可打开一个DOS窗口) 4.在打开的那个黑黑的DOS窗口中输入“debug<”,注意没有引号别把引号也输入了,然原创 2015-11-03 22:04:14 · 1803 阅读 · 0 评论 -
C++ STL queue化繁为简介绍
简介queue这个结构模拟的是数据结构中的队列什么意思呢? 就是说 通过push操作把数压进队列,增加队列长度。 通过pop操作把队列的队首给提取出来值,然后队列的队首会删除,形成新队首 通过front,back函数得到队首和队尾的值详细的例子:// queue的使用 q.pop()使用后弹出队列第一个// 也可以是结构体队列,栈#include <iostream>#include原创 2015-10-28 18:15:34 · 470 阅读 · 0 评论 -
windows关机命令详解
无需任何的软硬件也能实现电脑自动远程关机,使用Windows自带的Shutdown.exe程序自动关机设置,输入系统自动的命令方式。选择“开始→运行”,输入“at 00:00 Shutdown -s”(时间自己定)这样,到了时间电脑就会出现“系统关机”对话框,默认有30秒钟的倒计时并提示你保存工作。如果你想以倒计时的方式关机,可以输入“Shutdown.exe -s -t 3600”,注意这里360转载 2015-09-21 18:11:17 · 2372 阅读 · 0 评论 -
字符串匹配前序
起源因为我想做一个字符匹配程序,目的是达到输入一个字符串然后与已有的字典进行匹配。 然而字典却没有,于是我就想到了几种方法获得字典:(1) 手工录入字典 //太繁琐,被我pass(2) 通过文件录入字典,这种方式相对来说会比较省力,因为你可以从网上得到字典,保存在记事本里面,然后再用程序录入即可解释做法自然是用C++的文件了。给一段代码及几张图,演示一下C++文件读取的内涵![这里写图片原创 2015-09-18 13:41:50 · 566 阅读 · 0 评论 -
哈工大数据结构与算法实验4
实验要求写一个快速排序算法,实现数据的快速排序思路随便网上都能找到快排算法,然后照抄就ok。。。当然理解快排是必要的,只是快排不是很好理解,详情请百度#include <iostream> using namespace std; void sort(int* a,int x,int y){ int xx=x,yy=y; int k=a[x]; if (x>原创 2015-09-14 20:21:15 · 1612 阅读 · 0 评论 -
英雄联盟召唤师名封号查询
写作由来: 今天早上玩游戏,在LOL的主界面上看到了一些列被封号的名单公式,然后点进去看了看,发现名单太多了,根本就找不过来,所以自己就尝试着写了个程序去查找我想要找的召唤师名。附上封号链接:(以后不一定好使) http://lol.qq.com/webplat/info/news_version3/152/4579/4581/m3106/201508/374344.shtml如链接所示原创 2015-09-04 14:44:21 · 2675 阅读 · 0 评论