自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(86)
  • 收藏
  • 关注

转载 C++中new的用法

文章转载自http://blog.csdn.net/waken_ma/article/details/4007914new的过程当我们使用关键字new在堆上动态创建一个对象时,它实际上做了三件事:获得一块内存空间、调用构造函数、返回正确的指针。当然,如果我们创建的是简单类型的变量,那么第二步会被省略。假如我们定义了如下一个类A:class A{ int i;pub

2016-12-25 20:43:47 933

转载 关于二分查找的写法

参考文章:https://www.zhihu.com/question/36132386https://www.oschina.net/code/snippet_126720_6472http://www.cnblogs.com/cchun/archive/2012/07/24/2605991.html方法1:对于不下降序列a,n为序列a元素的个数,key为关键字:

2016-11-23 17:09:30 1032

转载 c++中的4种显式类型的转换

文章转载自http://m.jb51.net/article/48615.htm1.概述tatic_cast:用于“良性”和“适度良性”的转换,包括不用强制转换const_cast:用于“const”和/或“volatile”进行转换reinterpret_cast:转换为完全不同的意思。为了安全的使用它,关键必须转换回原来的类型。转换成的类型一般只能用于位操作,否

2016-11-16 16:54:35 1927

转载 Bellman-Ford(贝尔曼-福特)算法求单源最短路径

参考博客http://www.cnblogs.com/tanky_woo/archive/2011/01/17/1937728.html/** About: Bellman-Ford算法* Author: Tanky Woo* Blog: www.WuTianqi.com*/ #include using namespace std;const int maxnu

2016-11-06 22:06:31 1003

转载 Floyd-Warshall(弗洛伊德)算法求所有节点对的最短路径问题

参考博客http://www.cnblogs.com/skywang12345/p/3711526.html1.基本定义class MatrixUDG { #define MAX 100 #define INF (~(0x1<<31)) // 无穷大(即0X7FFFFFFF) private: char mVexs[MAX]

2016-11-06 21:11:00 1503

转载 Dijkstra(迪杰斯特)算法求单源最短路径

参考博客http://www.cnblogs.com/skywang12345/p/3711514.htmlhttp://blog.csdn.net/linux_ever/article/details/51314082http://www.cnblogs.com/biyeymyhjob/archive/2012/07/31/2615833.html以邻接矩阵创建图,实现算法

2016-11-06 21:06:12 3112

转载 有向无环图的拓扑排序

参考博客http://blog.csdn.net/lrgdongnan/article/details/51679781http://www.cnblogs.com/en-heng/p/5085690.html有向无环图(Directed Acyclic Graph, DAG)是有向图的一种,字面意思的理解就是图中没有环。常常被用来表示事件之间的驱动依赖关系,管理任务之间的调度

2016-11-05 21:40:40 2918

转载 C++外部排序(选择置换+败者树)

参考博客:http://www.cnblogs.com/benjamin-t/p/3325401.html单个顺串的生成采用选择置换算法。多路归并采用败者树。#include#include#include#include#includeusing namespace std;#define MAX_INT 0x7fffffff#define MIN_INT -1c

2016-11-03 20:05:37 2588 1

转载 外排序的C++实现(归并时利用败者树)

参考博客:http://blog.csdn.net/v_JULY_v/article/details/6451990http://www.cnblogs.com/harryshayne/archive/2011/07/02/2096196.html1、问题描述:输入:一个最多含有n个不重复的正整数(也就是说可能含有少于n个不重复正整数)的文件,其中每个数都小于等于n,且n=10^7

2016-11-02 20:52:49 3502

原创 c++堆排序实现

#include<iostream>using namespace std;int arrs[] = { 23, 65, 12, 3, 8, 76, 345, 90, 21, 75, 34, 61 };int arrLen = sizeof(arrs) / sizeof(arrs[0]);//维护堆的性质,保证除了根节点以外的所有节点i满足A[PARENT(i)]>=A[i]void adju

2016-11-01 20:29:05 347

转载 opencv向Mat中写入数据并显示

#include#includeusing namespace std;using namespace cv;void createAlphaMat(Mat& mat){ for (size_t i = 0; i < mat.rows; i++) { for (size_t j = 0; j < mat.cols; j++) { Vec4b &rgba = mat.

2016-10-27 09:49:23 4059

转载 c++中必须在类初始化列表中初始化的几种情况

文章转载自http://www.cnblogs.com/kaituorensheng/p/3477630.html以下几种情况必须在构造函数的初始化列表中:类的const常量类的引用类型成员没有默认构造函数的类类型成员没有默认构造函数的类类型成员详细情况如下: 1. 类成员为const类型2.类成员为引用类型#include <iostream>using namespace std;

2016-10-17 20:56:49 765

转载 C++中的const成员函数

文章转载自http://www.cnblogs.com/kaituorensheng/p/3244910.html1.const成员变量#include using namespace std;class A{ public: A(int size) : SIZE(size) {}; private: const int SIZE

2016-10-17 20:41:17 334

转载 百度面试题:宏的概念,与函数的区别,优缺点的比较。

文章转载自:http://www.xuebuyuan.com/1669200.html宏宏概念:C++ 宏定义将一个标识符定义为一个字符串,源程序中的该标识符均以指定的字符串来代替。宏书写形式:#define () 宏与函数的区别:时间上考虑:1.宏只占编译时间,函数调用则占用运行时间(分配单元,保存现场,值传递,返回

2016-10-17 18:04:22 485

原创 Effective C++ 0导读

1.构造函数尽量被声明为explicit,这样可以阻止它们被用来执行隐式类型转换(implicit type conversions),但它们仍可被用来进行显示类型转换(explicit type conversions)(P5)。2.拷贝构造函数:(1)拷贝构造函数是一种特殊的构造函数,函数的名称必须和类名称一致,它必须的一个参数是本类型的一个引用变量(2)编译器会给我们自动产生一个

2016-10-17 16:40:32 310

原创 c++设计模式之观察者模式(observer)

【概念】观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。相当于邮箱当中的订阅功能。UML图抽象主题(Subject):把所有观察者对象的引用保存在列表里,提供注册和删除观察者对象的接口。抽象观察者(Observer):为那些在目标发生改变时须获得通知的对象定义一个更新接口。具体主题(Concrete Subje

2016-10-16 21:28:40 307

转载 C++设计模式之策略模式(Strategy Pattern)

文章转载自http://blog.csdn.net/LCL_data/article/details/10255125【概述】策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类Context(应用场景):1、需要使用ConcreteS

2016-10-09 10:11:13 221

原创 求一个集合所有可能的子集

【1】增量构造法一次选出一个元素放到集合中#include#includeusing namespace std;const int MAX = 100;int layer = -1; //递归层数int count1 = 0;void print_subset(int n, int *A, vector &vi, int cur){ cout << "layer:" <<

2016-10-08 20:02:56 1096

原创 C++的STL中accumulate的用法

accumulate定义在#include中,作用有两个,一个是累加求和,另一个是自定义类型数据的处理1.累加求和int sum = accumulate(vec.begin() , vec.end() , 42);accumulate带有三个形参:头两个形参指定要累加的元素范围,第三个形参则是累加的初值。accumulate函数将它的一个内部变量设置为指定的初始值,然后在此初

2016-10-08 15:07:02 72019 9

转载 C++中的bitset类型

文章转载自http://www.cnblogs.com/BaiYiShaoNian/p/4591167.htmlc++标准库提供bitset类型,头文件#include和vector对象不一样的是bitset类型对象的区别仅在其长度而不在其类型。在定义bitset的时候,要明确bitset包含了多少位,须在尖括号内给出它的长度值。长度值必须定义为整形字面值常量或是已用常量值初始化的整型

2016-10-08 14:17:02 862

转载 c++中的std::pair与std::make_pair

文章转载自:http://www.cnblogs.com/Nimeux/archive/2010/10/05/1844191.htmlstd::pair主要的作用是将两个数据组合成一个数据,两个数据可以是同一类型或者不同类型。例如std::pair 或者 std::pair等。pair实质上是一个结构体,其主要的两个成员变量是first和second,这两个变量可以直接使用。初始化一个pair

2016-10-08 14:07:27 26892

转载 n皇后问题的解法

一、 求解N皇后问题是算法中回溯法应用的一个经典案例回溯算法也叫试探法,它是一种系统地搜索问题的解的方法。回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。下面是算法的高级伪码描述,这里用一个N*N的矩阵来存储棋盘:      1) 算法开始, 清空棋盘,当前行设为第一行,当前列设为第一列      2) 在当前行,当前列的位置上判断

2016-10-08 09:23:31 1074

转载 C++类的静态成员变量为什么一定要初始化

文章转载自https://my.oschina.net/u/1537391/blog/219432我们知道C++类的静态成员变量是需要初始化的,但为什么要初始化呢。其实这句话“静态成员变量是需要初始化的”是有一定问题的,应该说“静态成员变量需要定义”才是准确的,而不是初始化。两者的区别在于:初始化是赋一个初始值,而定义是分配内存。静态成员变量在类中仅仅是声明,没有定义,所以要在类的外面定义

2016-10-07 20:35:42 5698

原创 例题:枚举排列

枚举排列常见的方法有两种:一种是递归枚举,而是用STL中的next_permutation【1】生成可重集的排列#include#include#includeint p[20];int cmp(const void *a, const void *b){ return *(int *)a - *(int *)b;}void print_permutation(int

2016-10-06 16:42:05 490

原创 C++中一个由编译器决定结果的程序

【代码】#include using namespace std;int get(int i){ cout << i << endl; return i + 1;}int Cal(int a, int b) { return a + b;}int main() { cout << Cal(get(0), get(10)) << endl; return 0;}

2016-10-06 09:53:02 272

原创 例题:最大乘积

【题目】输入n个元素组成的序列S,你需要找出一个乘积最大的连续子序列。如果这个最大的乘积不是正数,应输出0(表示无解)。1样例输入:32 4 -352 5 -1 2 -1样例输出:820【分析】连续子序列有两个要素:起点和终点,因此只需枚举起点和终点即可。由于每个元素的绝对值不超过10且不超过18个元素,最大可能的乘积不会超过10^18,可以用long

2016-10-05 19:52:07 680

原创 例题:除法(UVa 725)

【题目】输入正整数n,按从小到大的顺序输出所有形如abcde/fghij = n的表达式,其中a~j恰好为数字0~9的一个排列,n为2~79;Sample Input61620Sample OutputThere are no solutions for 61.79546 / 01283 = 6294736 / 01528 = 62【分析】使用暴力枚举的方法

2016-10-05 19:28:37 736

转载 C++11中的lambda表达式

参考http://www.jb51.net/article/56147.htmhttp://blog.jobbole.com/104548/lambda就是一个匿名的可调用代码块。在C++11新标准中,lambda具有如下格式:[capture list] (parameter list) -> return type { function body }可以看到,他有四

2016-10-01 10:28:30 224

转载 非静态成员引用必须与静态成员相对

文章转载自:http://blog.csdn.net/shenqi67/article/details/7533094Instance成员和static成员(p318)实例变量/函数(instance variable):和一个类定义的实例(对象)密切相关。对同一个类的不同对象,其实例变量占有不同的存储空间。Static变量(static variable or cla

2016-09-30 17:20:55 6782

转载 c++类中的静态成员函数总结

参考http://www.cnblogs.com/carbs/archive/2012/04/04/2431992.html1.c++中可以对类中私有成员中的静态变量初始化吗?一般情况下对类中私有部分的访问可以是公共部分的成员函数,也可以是友元函数。那可以直接对私有部分的静态成员进行初始化吗。(1)static成员的所有者是类本身和对象,但是所有对象拥有一样的静态成员。从而在定义对象时

2016-09-30 16:57:55 777

转载 C++析构函数为什么要定义成虚函数

文章转载自http://blog.sina.com.cn/s/blog_7c773cc50100y9hz.html1.为什么基类的析构函数是虚函数?  在实现多态时,当用基类操作派生类,在析构时防止只析构基类而不析构派生类的状况发生。a.第一段代码#includeusing namespace std;class ClxBase{public: ClxBase()

2016-09-30 15:47:37 370

转载 01背包问题的动态规划解法

参考http://www.cnblogs.com/qinyg/archive/2012/04/26/2471829.htmlhttp://www.cnblogs.com/xy-kidult/archive/2013/03/25/2970313.html【问题描述】给定N中物品和一个背包。物品i的重量是Wi,其价值位Vi ,背包的容量为C。问应该如何选择装入背包的物品,使得转入背包的

2016-09-30 09:48:35 367

转载 动态规划的方法求解斐波那契数列

参考http://www.xuebuyuan.com/2068492.html如果一个递归算法需要对相同的子问题进行多次重复计算,那么我们通常可以采用动态规划对其进行优化。动态规划的具体实现可以分为两类:一类是自顶向下的备忘录方法(制表或者记忆),增加一个子问题解的记录,每当需要用到一个子问题的解时,首先查看这个记录,如果记录中存在需要的解,则可直接得到,如果不存在,则递归求解,并将结果记

2016-09-29 22:42:08 2296

转载 求数组中任意n个数的全排列

参考http://www.cppblog.com/menjitianya/archive/2015/10/09/211980.htmlhttp://blog.csdn.net/lsjseu/article/details/8878117数组中n个数的全排列可以用深度优先搜索去做 全排列的种数是N!,要求按照字典序输出。这是最典型的深搜问题。我们可以把N个数两两建立无向边(即任意两个

2016-09-29 22:23:22 5048 2

转载 例题:单词(UVa 10129h)

输入n(n【分析】思路:欧拉道路的应用。欧拉道路,即“一笔画”,从图中一结点出发走一条道路,每条边恰好经过一次。            首先要判断图是连通的。            对于无向图,最多只有两个奇点(度数为奇数)。且从一奇点出发,到另一奇点终止;若无奇点,则可从任意点出发,最终定会回到该点(欧拉回路)。            对于有向图,最多只能

2016-09-27 22:46:58 359

原创 例题:给任务排序(UVa 10305)

假设有n个变量,还有m个二元组(u,v),分别表示变量u小于v。那么,所有变量从小到大排列起来应该是什么样子呢?例如,有4个变量a,b,c,d,若已知a【分析】题目中n个变量看成图中n个结点,图中的边即是二元关系,m个二元组就代表了这m条边表示的二元关系,(u,v)表示v大于u,从u向v连一条有向边,如果这m个二元组不矛盾,那么这个图便是一个DAG否则就存在一个有向环,解便不存在了,举

2016-09-27 20:47:13 892 1

原创 例题:Abbott的复仇(UVa 816)

有一个最多包含9*9个交叉点的迷宫。输入起点、离开起点时的朝向和终点,求一条最短路(多解时任意输出一个即可)这个迷宫的特殊之处在于:进入一个交叉点的方向(用NEWS这四个字母分别表示北东西南,即上下左右)不同,允许出去的方向也不同。例如,12 WLF NR ER*表示交叉点(1,2)(上数第一行,左数第二列)有3个路标(字符“*”只是结束标志),如果进入交叉点时的朝向为W(即朝左),则可以左转

2016-09-26 22:57:04 785

原创 例题:油田(UVa 572)

输入一个m行n列的字符矩阵,统计字符@组成多少个八连块。如果两个字符@所在的格子相邻(横竖或者对角线方向),就说他们属于同一个八连块。Sample Input       1 1       *       3 5       *@*@*       **@**       *@*@* Sample Output 

2016-09-26 20:43:57 497

原创 例题:四分树(UVa 297)

【题目】可以用一个四分图表示一32*32的黑白图像 ,法是用根节点来表示整个图像,然后再进行等分,按照从右上角的图像开始逆时针的顺序编号,依次有四个节点,如果某子节点对应的区域是全黑或者全白,则直接用黑或者白节点来代替,如果对应的区域既有白区域,也有黑区域,则用灰节点来表示,并且为这个区域递归建树。给出两棵四分树的先序遍历,求两者合并之后(黑色部分合并),黑色像素的个数,其中p表示中间节点,f表示

2016-09-26 20:02:09 715

转载 C++ 中字符串的使用

文章转载自http://blog.csdn.net/chenyufeng1991/article/details/52266035首先要引入C++中的字符串头文件:#include 请注意,这里的头文件是没有.h的,否则就成了C语言中的头文件了。(1)创建字符串创建字符串有好几种构造方式,最典型的方式就是使用复制构造函数,string str("chen

2016-09-24 22:52:03 507

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除