C++
文质彬彬online
人生苦短,我爱Python!
展开
-
C++算法之最短路径
问题描述 给定一个n个顶点,m条边的有向图(其中某些边权可能为负,但保证没有负环)。请你计算从1号点到其他点的最短路(顶点从1到n编号)。输入格式 第一行两个整数n, m。接下来的m行,每行有三个整数u, v, l,表示u到v有一条长度为l的边。输出格式 共n-1行,第i行表示1号点到i+1号点的最短路。 样例输入 3 3 1 2 -1 2 3 -1 3 1 2 样例输出 -1原创 2016-12-03 00:37:10 · 1203 阅读 · 0 评论 -
STL知识(1)--为什么需要有模板?
一、为什么需要有模板?以实现比较大小函数功能为例子,我们如下展开代码:为同一种数据结构或者算法定义适用于不同类型的版本。–代码冗余#include <iostream>using namespace std;int max_int(int x, int y){ return x > y ? x : y;}double max_double(double x, double y){原创 2017-08-27 14:33:23 · 283 阅读 · 0 评论 -
9点C++(6)
1、 不完全类型只能在非常有限的情景下使用,可以定义指向这种类型的指针或引用,也可以声明以不完全类型作为参数或者返回类型的函数; 2、 对于一个类来说,在我们创建它的对象之前该类必须被定义过,而不能仅仅被声明,否则,编译器就无法了解这样的对象需要多少存储空间。类似的,类也必须首先被定义,然后才能引用或者指针访问其成员,毕竟类尚未定义,编译器也不清楚该类到底有哪些成员; 3、 一个类的名字一原创 2017-08-03 15:16:38 · 206 阅读 · 0 评论 -
9点C++(5)
1、 类可以允许其他类或者函数访问它的非公有成员,方法是令其他类或者函数成为它的友元(friend),如果类想把一个函数作为它的友元,只需增加一条以friend关键字开始的函数声明语句即可; 2、 友元声明只能出现在类定义的内部,但在类内出现的具体位置不限。友元不是类的成员也不受它所在的区域访问控制级别的约束; 3、 一般来说,最好在类定义的开始或结束前的位置集中声明友元; 4、 封装原创 2017-07-30 12:10:10 · 233 阅读 · 0 评论 -
9点C++(4)
1、 构造函数使用类内初始值是一种好的选择,因为只要这样的初始值存在我们就能确保位成员赋予了一个正确的值,如果编译器不支持类内初始值,则所有构造函数都应显示地初始化每一个内置类型的成员; 2、 构造函数不应轻易覆盖掉类内的初始值,除非新赋予的值与原值不同。 3、 没有出现在构造函数初始化列表中的成员将通过相应的类内初始值初始化,或者执行默认初始化; 4、 很多需要动态内存的类使用vec原创 2017-07-29 22:26:52 · 191 阅读 · 0 评论 -
9点C++(3)
1、 类可以包含多个构造函数,和其他函数重载差不多,不同的构造函数之间必须在参数数量或参数类型上有所区别; 2、 构造函数不能被声明为const,当我们创建一个类的const对象时,直到构造函数完成初始化过程,对象才能真正取得其常量属性,在构造函数的构造过程中可以向其写值; 3、 编译器只有在发现类中不包含任何构造函数的情况下才会替我们生成一个默认构造函数,一旦我们定义了一个其他构造函数,原创 2017-07-29 22:25:55 · 443 阅读 · 0 评论 -
9点C++(2)
1、 C++允许把const关键字放在成员函数的参数列表之后,此时紧跟在参数列表之后的cosnt表示this是一个指向常量的指针; 2、 常量成员函数(cosnt member functon):像上一点那样使用const 的成员函数; 3、 常量对象,以及常量对象的引用或指针都只能调用常量成员函数; 4、 编译器分两步处理类:首先编译成员声明,然后编译成员函数体;因此成员函数体可以随原创 2017-07-29 22:25:00 · 330 阅读 · 0 评论 -
9点C++(1)
1、 类的成员函数的声明必须在类的内部,定义既可以在类的内部也可以在类的外部; 2、 定义在类内部的函数是隐式的inline函数(内联函数); 3、 成员函数通过一个名为this的额外的隐式参数来访问它的那个对象,当我们调用一个成员函数时,就用请求该成员函数的对象的地址来初始化this; 4、 在成员函数内部,我们可以直接使用调用该成员函数的对象的成员,而无需通过成员访问运算符来做到这原创 2017-07-29 22:23:46 · 277 阅读 · 0 评论 -
typedef
引言 typedef 声明,简称 typedef,为现有类型创建一个新的名字。比如人们常常使用 typedef 来编写更美观和可读的代码。所谓美观,意指 typedef 能隐藏笨拙的语法构造以及平台相关的数据类型,从而增强可移植性和以及未来的可维护性。 在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。typedef的使用方法如转载 2017-05-09 23:25:09 · 228 阅读 · 0 评论 -
Linux下的OpenCV安装
一、安装 1 安装cmake及一些依赖库 sudo apt-get install cmake sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev2 安装OpenCV 从转载 2017-05-10 18:54:40 · 4713 阅读 · 0 评论 -
C++中的<typeinfo.h>
函数typeid()返回值类型class type_info。 其中type_info重载了操作符==, !=, =分别用来比较是否相等、不等、赋值。 函数name()返回类型名称。class type_info {public: virtual ~type_info(); booloperator== (consttype_info& rhs) const; booloperat原创 2017-08-28 18:58:23 · 888 阅读 · 0 评论