C++学习
MatthewHsw
搬砖新兵
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++类中构造函数
我们在定义一个类之后,在利用该类定义了一个对象后,往往需要对该对象中数据成员变量进行初始化。有时候我们会误操作,忘记初始化或者重复初始化,这样做都会造成程序的崩溃。C++给我们提供了一个很有用的方法,就是类的构造函数。C++类的构造函数,和其它成员函数一样,在类中定义。不过构造函数和其他成员函数不一样的是,它没有返回值,它的名称和类名一模一样。例如:原创 2015-08-09 11:00:14 · 606 阅读 · 0 评论 -
图的最小生成树prim算法详解
prim算法是求图的最小生成树的一种算法,它是根据图中的节点来进行求解,具体思想大概如下: 首先,将图的所有节点(我们假定总共有n个节点)分成两个集合,V和U。其中,集合V保存的是我们已经访问过的节点,集合U保存的是我们未曾访问的节点。prim算法第一步就是选定第一个节点放入集合V中(一般是第一个),然后查找V中节点和U中节点之间距离最小的那个路径,(假设U中节点w离V中的某个节点距离最近),将w原创 2015-11-01 16:29:19 · 2265 阅读 · 2 评论 -
图的最小生成树Kruskal算法
克鲁斯卡尔(Kruskal)算法(只与边相关)算法描述:克鲁斯卡尔算法需要对图的边进行访问,所以克鲁斯卡尔算法的时间复杂度只和边又关系,可以证明其时间复杂度为O(eloge)。 算法过程: 1.将图各边按照权值进行升序排序 2.将图遍历一次,找出权值最小的边,(条件:此次找出的边不能和已加入最小生成树集合的边构成环),若符合条件,则加入最小生成树的集合中。不符合条件则继续遍历图,寻找下一个最小原创 2015-11-01 19:59:14 · 918 阅读 · 0 评论 -
LeetCode (3) Longest Substring Without Repeating Characters
这道题的题意很简单,其实就是求一个给定的字符串中最长的一段没有重复字符的子串。我刚开始是这样想的,设置两个下标,其中一个为找到不重复子串的开始位置,另外一个为不重复子串的终止位置,然后对字符串从头开始扫。class Solution {public: int lengthOfLongestSubstring(string s) { int maxLen = 0;原创 2015-11-23 09:08:43 · 485 阅读 · 0 评论 -
LeetCode Two Sum 及C++map浅显理解
今天正式开始刷LeetCode,发现上面和其它地方的oj真的不太一样。首先,最最最好的一点就是你可以在上面在线敲代码然后运行,不用自己再打开vs或者dev,然后就是,它不让你关心数据到底是如何输入输出的,唯一关心的就是你的核心代码,就是说只要主体结构正确,你不用考虑输入输出(这个简直太良心了,其它OJ好多题都是死在输入输出上有木有!),完成solution这个函数(或者类,在C++下)就行。 好了原创 2015-11-15 19:43:20 · 1500 阅读 · 0 评论 -
C++ 用cout输出小数点后位数的方法
现在有一个数据,例如为3.1415926,我们想要用cout输出小数点后固定的位数#include<iomanip>首先引入头文件,输入输出流 其次,在输出时,加入这两句setiosflags(ios::fixed)<< setprecision(d);其中d为想要输出的小数点后的位数。 例如,我们想要输出变量π=3.1415926的小数点后三位cout << setiosflags(ios::原创 2015-10-28 11:22:24 · 2125 阅读 · 0 评论 -
C++并查集
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2015-10-25 20:00:17 · 3318 阅读 · 0 评论 -
C++ sort()函数一些简单的用法
C++标准函数模板库(stl)里有个自带的排序函数sort(),该函数可以直接对数组或者类似数组类型的结构体进行排序,其时间复杂度为n*log2(n);sort()函数定义在头文件<algorithm>中,基本用法为:sort(a,a+n);其中,a为一个数组的名称,n为需要排序的数组个数,数组默认起始下标为0; sort函数默认为升序排列,它缺省了一个参数,如果想让它变为降序排列,需要自定义缺省原创 2015-10-25 21:30:11 · 595 阅读 · 0 评论 -
关于大整数乘法和加法的一些整理
例如,有两个大整数,a和b,其中a、b位数都是大于10的。我们知道,在做OJ的题时,碰到大整数的乘法,不能直接用a*b得到结果,那样是不对的,所以需要用数组来存储。 首先,很简单,定义两个数组(足够长),s1和s2,分别用来存储大整数a和b,因为我们需要用来相乘,而乘法是从最后一位开始乘法的,所以我们需要将a和b用数组的形式倒序存储。int s1[100] = {0};int s2[100] =原创 2015-11-05 17:14:02 · 827 阅读 · 0 评论 -
c++ cin 输入不确定数量的string类
今天在阅读《c++ primer》的时候,书上有这样一段代码:string word;while(cin >> word)cout 该代码段的作用呢,就是当你需要输入好几个字符串的时候,中间已空格隔开,但你又不确切的知道字符串的数量有几个,就可以用这个来输入。但是这样有一个问题,我在输入“dddd ttt ssss”并按Enter结束的时候,cin输入并没有结束,程序还在运行,等待我输入,后来原创 2015-09-09 11:06:46 · 2148 阅读 · 0 评论 -
有关C++类中数据成员变量定义的一些想法
最近开始学习C++,以前是学C的,对C++新生的类不是很懂,最近在看一些教程,发现有的教程只是简单的告诉你什么是类,还有怎么使用类,但对于类的标准啥的并没有进行标准化的介绍。关于C++类中成员变量的定义,一般都是推荐这样定义:1.类中的属性(不是函数)最好定义标准化,并且取名字能让其他人阅读你代码的时候,能够一下子就读懂。例如,有一个类是Teacher类,有属性 姓名 年龄等,这样你就可以原创 2015-08-09 10:40:51 · 634 阅读 · 0 评论 -
c和C++main函数中参数的意义和用法
main函数是C++的主函数,除了程序本身外,任何函数都不可以调用main函数。main函数中可以添加参数,也可以不写。main函数默认有两个参数,main(int argc, char ** argv),其中,argc是用来表面main函数究竟调用了几个参数,因为程序本身的文件名就是一个参数,所以argc总是>=1。如果除了程序本身外,你还规定了其它的一些参数,例如在vs里面进行调试时,输入了参数原创 2015-11-24 17:21:05 · 684 阅读 · 0 评论
分享