
C++
happy1yao
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
函数重载与重复声明
一个函数在一个特定的域中被多次声明时,编译器解析第二个及后面函数依照下面步骤:1.参数个数或类型不同,则认为是重载 // 重载函数 void print( const string & ); void print( vector<int> & );2.函数返回类型和参数表完全相同,则认为第二个函数是第一个函数的重复声明 参数表的比较过程与参数名无关3.如果两个函数的参数...转载 2018-05-17 15:21:24 · 3240 阅读 · 0 评论 -
数据结构七——递归、回溯、分治、动态规划
一、递归(recursion):程序调用自身的编程技巧。递归满足2个条件:1)有反复执行的过程(调用自身)2)有跳出反复执行过程的条件(递归出口)爬楼梯问题:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?n=2时,有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶对于第n阶台阶有多少种爬法这个问题,我们只需要...原创 2019-04-24 10:39:03 · 225 阅读 · 0 评论 -
数据结构六——图
实现有向图、无向图、有权图、无权图的邻接矩阵和邻接表表示方法实现图的深度优先搜索、广度优先搜索实现 Dijkstra 算法、A* 算法实现拓扑排序的 Kahn 算法、DFS 算法一、图的分类与表示方法图是由顶点和边组成的一种数据结构,一组顶点V 表示顶点的集合,一组边E 表示边的集合。图按照不同的特征可以分为以下类别:有向图、无向图有权图、 无权图连通图、非连通图图的表示图在...原创 2019-04-22 17:35:07 · 337 阅读 · 0 评论 -
数据结构三—排序、二分查找
一、排序1.实现冒泡排序、选择排序、插入排序、希尔排序、堆排序、归并排序、快速排序排序的几大经典算法,先上比较图/*1.冒泡排序*/void Swap(int A[], int i, int j){ int temp = A[i]; A[i] = A[j]; A[j] = temp;}void BubbleSort(int A[], int n)//出错,数组退化成了指针,...原创 2019-04-14 16:52:39 · 295 阅读 · 0 评论 -
数据结构四——哈希表
散列表(哈希表)一、实现一个基于链表法解决冲突问题的散列表哈希思想就是通过哈希函数f(key)找到在表中的位置。aKey和bKey不相等时,f(aKey) 可能等于 f(bKey)。这种现象称为冲突。 通常有两类方法处理冲突:开放定址法和拉链法。前者是将所有结点均存放在散列表T[0…m-1]中;后者通常是将互为同义词的结点链成一个单链表,而将此链表的头指针放在散列表T[0…m-1]中。1、开...原创 2019-04-16 17:23:05 · 442 阅读 · 0 评论 -
数据结构一——栈、队列、链表
基本的数据结构包括:栈、队列和链表。他们都属于线性表。按照顺序结构排列的叫线性表,按照链式结构排列的叫链表。顺序表又根据操作规则分为栈和队列。插入和删除都在尾部操作的叫栈,栈先进后出,头部取出或删除元素,尾部插入元素叫队列,队列先进先出。栈、队列、链表的基础代码栈1.1.用数组实现一个顺序栈https://blog.youkuaiyun.com/wwxy1995/article/details/8...原创 2019-04-08 17:35:24 · 278 阅读 · 0 评论 -
数据结构二——数组、字符串
1. 数组(哈希表)实现一个支持动态扩容的数组int dynamic(){ int num, i, addNum; //num是小组人数 cout << "输入学生人数: "; cin >> num; int *score = new int[num]; cout << "请输入学生成绩: "; //输入num名同学的成绩 fo...原创 2019-04-11 15:42:40 · 210 阅读 · 0 评论 -
浅谈C++静态库与动态库
一、什么是库? 库是写好的、成熟的、可以复用的代码。现实中不可能每个人都从零开始写代码,都要依赖很多底层库。本质上来说库是一种可执行代码。库有两种:静态库(.a、.lib)和动态库(.so、.dll)。静态库和动态库的区别在于链接阶段如何处理库。二、静态库 在链接阶段,会将汇编生成的目标文件.o与引用的库一起链接打包到可执行文件中。静态库特点: 1....转载 2019-01-08 17:21:32 · 292 阅读 · 0 评论 -
八大数据结构
简单地说,数据结构是以某种特定的布局方式存储数据的容器。这种“布局方式”决定了数据结构对于某些操作是高效的,而对于其他操作则是低效的。首先我们需要理解各种数据结构,才能在处理实际问题时选取最合适的数据结构。常用的数据结构有:数组,栈,链表,队列,树,图,堆,散列表等。1、数组数组是可以再内存中连续存储多个元素的结构,在内存中的分配也是连续的,数组中的元素通过数组下标进行访问,数组下标从0开...转载 2018-09-14 15:02:44 · 210 阅读 · 0 评论 -
LINUX下编译c++11的代码
C++11,(即ISO/IEC 14882:2011),是目前的C++编程语言的最新正式标准。它取代了第二版标准(第一版公开于1998年,第二版于2003年更新,分别通称C++98以及C++03,两者差异很小)。新的标准包含核心语言的新机能,而且扩展C++标准程序库。C++11新标准由C++标准委员会于2011年8月12日公布,并于2011年9月出版。此次标准为C++98发布后13年来第一次重大...转载 2018-07-05 13:50:35 · 3512 阅读 · 0 评论 -
Windows向Linux代码移植常见问题
前几天完成了一次Windows向Linux的代码移植,由于在Windows上开发时没有考虑到兼容性,所以移植的时候还是碰到了不少的问题,今天专门抽时间把问题和解决方法整理出来,作为经验,以备将来查阅。1. 包含的头文件名称大小写问题例如[plain] view plain copydecode_test_utils.cpp:1:20: fatal error: StdAfx.h: No such ...转载 2018-06-25 11:18:50 · 1378 阅读 · 0 评论 -
VS项目属性的一些配置项的总结(important)
首先,解决方案和项目文件夹包含关系(c++项目):VS解决方案和各个项目文件夹以及解决方案和各个项目对应的配置文件包含关系,假设新建一个项目ssyy,解决方案起名fangan,注意解决方案包括项目,此时生成的最外层目录为fangan代表整个解决方案的内容都在这个文件夹内。在这个fangan文件夹内包含有fangan.sln的解决方案配置文件和一个ssyy文件夹,ssyy文件夹代表整个ssyy项目的...转载 2018-05-30 14:03:06 · 397 阅读 · 1 评论 -
VS2015静态库与动态库的使用
VS2015静态库与动态库的使用静态库静态库创建(略),往往我们使用第三方的比较常见,如果要自己团队间创建使用也很简单;头文件的加载: 方式一: (1)将静态库给出的头文件拷贝到项目目录下(*.vcxproj所在的目录); (2)在项目中添加该头文件:右键–》添加–》现有项–》选中刚才拷贝的头文件; (3)在需要使用的文件中#include “*.h” 包含刚才的头文件。方式二:在项目属性中配置头...转载 2018-05-30 10:00:36 · 1370 阅读 · 0 评论 -
extern使用方法总结!
Extern的问题在于不知道这个关键词出现的时候到底是声明还是定义。谨记:声明可以多次,定义只能一次。 函数的声明extern关键词是可有可无的,因为函数本身不加修饰的话就是extern的。但是引用的时候一样是需要声明的。而全局变量在外部使用声明时,extern关键词是必须的,如果变量无extern修饰且没有显式的初始化,同样成为变量的定义,因此此时必须加extern,而编译器在此标记存储空间在执...转载 2018-05-17 17:04:34 · 157 阅读 · 0 评论 -
数据结构五——二叉树、堆
一、二叉树实现一个二叉查找树,并且支持插入、删除、查找操作实现查找二叉查找树中某个节点的后继、前驱节点实现二叉树前、中、后序以及按层遍历并完成leetcode上的验证二叉搜索树(98)及二叉树 层次遍历(102,107)!...原创 2019-04-19 17:29:20 · 207 阅读 · 0 评论