
c++
wei_god
涉及领域:图像处理、目标检测、深度学习
展开
-
c++静态数据的理解 static
在程序中有些函数是为文件中的其他函数服务的,并不对外服务,这些函数应声明为静态,表示局部于程序文件。同样有的变量只为本文件服务也不是全局数据,应标以static。可以使程序文件更好的发挥模块性。1、静态全局数据: 静态全局函数和静态全局变量只在本文件范围内可见,在其他程序文件中是不可见的。全局数据可以称为:程序数据,静态全局数据称为:文件数据,函数内部的局部数据称为:函数数据。当程序只由一原创 2017-03-27 15:34:40 · 1016 阅读 · 1 评论 -
c++ bitset 位集
有些程序要处理二进制位的有序集,每个位可能包含的是0(关)或1(开)的值。位是用来保存一组项或条件的yes/no信息(有时也称标志)的简洁方法。标准库提供了bitset类使得处理位集合更容易一些。要使用bitset类就必须要包含相关的头文件。#include<bitset>using std::bitset; bitset操作函数:bitset使用具体实例:#include<iostream>#原创 2017-03-26 20:31:51 · 590 阅读 · 0 评论 -
c++ 程序计时 clock
函数名: clock 功 能: 确定处理器时间 用 法: clock_t clock(void); 头文件:#include <time.h> 说明:clock()得到的是毫秒做单位的 程序例: #include <time.h> #include <stdio.h>原创 2017-03-26 20:59:44 · 3440 阅读 · 0 评论 -
c++ pair make_pair 数据对
std::pair主要的作用是将两个数据组合成一个数据,两个数据可以是同一类型或者不同类型。例如std::pairtemplate pair make_pair(T1 a, T2 b) { return pair(a, b); }一般make_pair都使用在需要pair做参数的位置,可以直接调用make_pair生成pair对象。 另一个使用的方面就是pair可以接受隐式的类型转换,这样可以获原创 2017-03-26 15:44:24 · 1834 阅读 · 0 评论 -
c++ 预编译
预编译是c++编译的最初部分,它的工作是在编译之前对程序内容进行最有的取舍处理,使得一些语句参加编译,而另一些语句不参加编译。常用的预编译指令是: 1、包含指令:#include 2、条件指令:#if、#elif、#else、#endif、#ifdef、#ifndef 3、定义指令:#define、#undef1、#include include指示预编译将包含的头文件内容附加在程序文件中,以原创 2017-03-27 16:57:27 · 3467 阅读 · 0 评论 -
c++ 类静态数据成员理解
静态数据成员: 直接上例程分析:#include <iostream>using namespace std;class Student{private: string name; int n=0;public: void set(string str){ static int number = 0; name = str;原创 2017-04-04 19:43:51 · 374 阅读 · 0 评论 -
c++ 访问控制之protect、private、public
protected 和privated都是针对函数定义来说的在外部程序中都不可被调用。 public表示可以被外部调用(对象.方法)public: 数据成员和函数成员可在成员函数,友元,继承类中直接使用。亦可以作为接口,供类的用户使用(即 A a,a.change())。private: 数据成员和函数成员,只能在 类成员和友元 中访问。不能被继承类访问(无论何种继承),虽然作为继承类的私原创 2017-04-04 20:14:46 · 1045 阅读 · 0 评论 -
c++ 静态成员函数
静态成员函数可以不以捆绑的方式调用,静态成员函数被调用时,没有当前对象的信息,所以静态成员函数不能访问数据成员,只能访问静态数据成员。但可以通过传递对象参数进去从而访问成员。// class_test.cpp : 定义控制台应用程序的入口点。//#include <iostream>using namespace std;class Student{private: string n原创 2017-04-04 20:31:45 · 373 阅读 · 0 评论 -
c++ 友元函数 友元类
1、友元函数 为什么会有友元函数?结合着类的特性和类中一般成员函数,我们可以这样理解:类具有封装和信息隐藏的特性。只有类的成员函数才能访问类的私有成员,程序中的其他函数是无法访问私有成员的。非成员函数可以访问类中的公有成员,但是如果将数据成员都定义为公有的,这又破坏了隐藏的特性。另外,应该看到在某些情况下,特别是在对某些成员函数多次调用时,由于参数传递,类型检查和安全性检查等都需要时间开销,而影响原创 2017-04-04 22:50:56 · 582 阅读 · 0 评论 -
c++ 面向对象 总结
作为对象的构造函数,其根本的使用就是创建对象实体,如果创建失败,比如:内存空间短缺,将会引起系统异常,这时候真要论及处理,就该让程序捕捉该异常。原创 2017-04-13 19:50:04 · 702 阅读 · 0 评论 -
c++ 继承
继承面临许多技术问题,包括父类与子类的访问权限规定,子类对象既然包含了父类对象,那么初始化和构造函数的顺序规定,子类对象与父类对象的关系,当然我们也要考虑与比较类的组合与类的继承的差异,来深刻学习继承的方法。继承可以使已经存在的类无需修改就可适应新应用,继承是比重用规模更广的重原创 2017-04-14 14:32:33 · 455 阅读 · 0 评论 -
c++ 多态、覆盖、重载的综述
在基类中定义了一个虚拟函数,然后在派生类中又定义一个同名,同参数表的函数,这就是多态。多态是这3种情况中唯一采用动态绑定技术的一种情况。也就是说,通过一个基类指针来操作对象,如果对象是基类对象,就会调用基类中的那个函数,如果对象实际是派生类对象,就会调用派声类中的那个函数,调用哪个函数并不由函数的参数表决定,而是由函数的实际类型决定。原创 2017-04-15 16:01:20 · 3622 阅读 · 1 评论 -
c++ 虚函数
在类的编程中,要能进行抽象编程,不随类的改动而改动。类机制必须解决这个问题。在c++中就是虚函数机制。基类与派生类的同名操作,只要标记上virtual,该操作便具有多态性。一旦标记基类的函数为虚函数,便有连锁反应,后面继承的类中一切同类型同名成员函数都变成了虚函数。仅仅对于对象的指针和引用的间接访问,才会发生多态现象。对于传值操作,引发了复制动作,已经将对象的性质做了肯定的转变,则不会多态了(多态是原创 2017-04-16 15:28:45 · 495 阅读 · 0 评论 -
c++ bind函数
头文件:#include <functional> 前言 函数绑定bind函数用于把某种形式的参数列表与已知的函数进行绑定,形成新的函数。这种更改已有函数调用模式的做法,就叫函数绑定。需要指出:bind就是函数适配器。先上实例:#include <iostream> #include <functional> using namespace std; using namespa原创 2017-05-03 21:01:11 · 14732 阅读 · 0 评论 -
visual studio 好用的插件
1.Whole Tomato(番茄助手) Visual AssistX是一款非常好的MicrosoftVisual Studio插件,可以支持Microsoft Visual Studio 2003,Microsoft Visual Studio 2005,Visual Studio 2008,Microsoft Visual Studio 2010,Microsoft Visual Studio原创 2017-04-23 20:53:55 · 1271 阅读 · 0 评论 -
c++ map
map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作!map可以方便的使用:自动建立Key - value的对应。key 和 value可以是任意你需原创 2017-03-26 15:54:30 · 968 阅读 · 0 评论 -
c++ stack 栈
C++stack(堆栈)是一个容器的改编,它实现了一个先进后出的数据结构(FILO) 使用该容器时需要包含#include<stack>头文件;定义stack对象的示例代码如下:stack<int>s1;stack<string>s2;stack的基本操作有:1.入栈:如s.push(x);2.出栈:如 s.pop().注意:出栈操作只是删除栈顶的元素,并不返回该元素。3.访问栈顶:如s.t原创 2017-03-26 15:28:11 · 775 阅读 · 0 评论 -
c++ list 链表 基本操作和使用
List将元素按顺序储存在链表中. 与 向量(vectors)相比, 它允许快速的插入和删除,但是随机访问却比较慢. 操作函数:assign() 给list赋值back() 返回最后一个元素begin() 返回指向第一个元素的迭代器clear() 删除所有元素empty() 如果list是空的则返回trueend() 返回末尾的迭代器erase() 删除一个元素front() 返回第原创 2017-03-26 15:20:14 · 908 阅读 · 0 评论 -
c++ 名空间的理解 namespace
c++ 的名称理解,不能仅仅用名称的作用域规则来规范,名空间机制才是真正全面发挥作用的的名称认定和作用域规则。它规定,一个名称必须在使用的域中明确声称其使用的空间名,才能在域中默认的使用该名称,像:using namespace std;默认使用std标准库名一样;没有使用上述名空间语句时,只能直接用类似:std::cout,这种语句。c++的名空间机制,就是为了支持大规模程序的逻辑设计、排解名字冲原创 2017-03-27 16:08:15 · 683 阅读 · 0 评论 -
利用C/C++编写程序以获取文件夹内所有子文件名,windows和Linux两个版本都有
利用C/C++编写程序以获取文件夹内所有子文件名,windows和Linux两个版本都有原创 2017-03-20 18:23:37 · 1101 阅读 · 0 评论 -
c++ 指针、常量指针、指针常量、引用的简单介绍
1、指针 指针可以在定义时初始化也可以在后续赋值。引用必须在定义时初始化。 int* ip,iq;//ip为指针类型,iq为整形变量 一个*只能修饰一个指针。正确定义如下:int* ip,*iq;& 表示实体的地址,由于字面值不认为是具有空间地址的实体,所以不能进行&操作;ip = &23;//错2、指针运算: 数据类型的三要素:数据表示、范围表示、操作集合; 指针与整型虽原创 2017-03-25 12:46:36 · 403 阅读 · 0 评论 -
string与char、char*、const char、const char*、char a[]互转
一般iostream头文件包含了string.h,但有的编译器中没有包含,所以字符串操作最好加上头文件string.h1、char、char*、const char、const char*、char a[] =>string s = “h”; 直接赋值即可,可自动隐式转换。 char p = ‘a’; std::string s; const char q = ‘b’; char* a原创 2017-03-25 11:09:43 · 1567 阅读 · 0 评论 -
c++ vector使用 最全整理
vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的. 用法: 1.文件包含: 首先在程序开头处加上#include以包含所需要的类文件vector 还有一定要加上using namespace std;2.变量声明原创 2017-03-25 13:03:44 · 7201 阅读 · 0 评论 -
c++ 栈机制
一个程序要运行,就要先将可执行程序文件装载到计算机内存中,装载是操作系统掌控的,一般而言,操作系统将程序装入内存后,将形成一个随时可以运行的进程空间,该进程空间分为四个区域:代码区:执行代码就是索引了一个个函数块代码,它由函数定义块的编译得到。全局数据区:存放全局数据、常量、文字量、静态全局量、静态局部量。堆区:动态内存,供程序随机申请使用,一般指new栈区:函数数据区、局部数据区的数据,局部原创 2017-03-25 14:16:42 · 412 阅读 · 0 评论 -
c++ 简单理解main参数
int main(int argc,char** argv){ ….. }第一项代表传递的c-串的个数,第二项代表具体的c-串数组,该数组的最后一项是空串,即指向0的串。简单应用介绍: example1: example.cpp#include<iostream>using namespace std;int main(int argc,char** argv){ for(int原创 2017-03-26 11:25:26 · 798 阅读 · 0 评论 -
c++ string流 stringstream的简单总结(初级)
头文件(常用于格式转换) 简单用法: string s; stringstream ss; ss<<2; ss>>s;//将int转换为string ss.clear();//使用stringstream来做转换时,最好使用完,进行ss.clear()操作1、istringstream类用于执行C++风格的串流的输入操作。//它的作用是从string对象str中原创 2017-03-26 11:33:46 · 4137 阅读 · 0 评论 -
c++ 文件流 fstream
头文件:fstream //i、o表示输入、输出。f表示文件。stream表示流。 ifstream fin(filename,openmode=iso::in); ifstream fout(filename,openmode=iso:out);例:ifstream in("a.in"); ofstream out("a.out"); for(string str;getli原创 2017-03-26 10:58:54 · 758 阅读 · 0 评论 -
c++ 函数重载与名称压轧 简述
函数重载: 只要参数个数不同、参数类型不同、参数顺序不同,同名函数就可以重载。但是,只是返回类型不同是不允许函数重载的。因为调用函数只看参数匹配的。void func(int a); //okvoid func(char a); //okvoid func(char a, int b); //okvoid func(int a,char b); //okchar func原创 2017-03-26 13:47:26 · 555 阅读 · 1 评论 -
c++ 默认参数
默认参数: 在同时有声明和定义时,默认参数只能置身于声明中。 函数参数默认值只能从后往前设置:void func(int a=1,int b, int c=3, int d =4); //错:b和a的位置违规void func(int a,int b=2,int c =3, int d =4); //ok调用时的实参按位置解析,默认实参也只能从后往前逐个替换尾部的“缺漏”原创 2017-03-26 13:55:10 · 698 阅读 · 0 评论 -
c++ c串的理解 char*
C-串: char buffer[7]=“Hello!”;//若buffer[6],则出错,(字符字面值buffer,类型为char)‘H'|'e'|'l'|'l'|'o'|'!'|0 //空间存储格式,以全0位字节作为结束符。C-串的空间长度为字符串长度加1; C-串的类型为char*,说的更精确一点是const char* 。char* 成为字符指针,它原创 2017-03-26 14:05:02 · 857 阅读 · 0 评论 -
c++ 内联函数 理解
C++中函数调用需要建立栈环境,进行参数复制,保护调用现场,返回时还要进行返回值复制,恢复调用现场。这些都是额外开销。我们既要使用函数调用来体现结构化和可读性,又要是效率尽可能的高。解决办法就是将这种小函数声明为内联。inline bool isnumber(char); //内联声明对函数的内联声明必须在调用之前。因为内联函数的代码在程序运行时是直接嵌入在调用处执行的,不影响链接,只在编译原创 2017-03-26 14:29:48 · 412 阅读 · 0 评论 -
图像处理 去模糊 去马赛克 软件
1、恢复模糊的图像 SmartDeblur SmartDeblur 是一个开源去模糊工具,专用于修复拍摄照片过程中由于不正确的对焦(虚焦)和移动所造成的模糊图像,具体包括因虚焦引起的模糊(Out of Focus blur)、因运动引起的模糊(Motion blur)、高斯模糊(Gaussian blur)。拍摄过程中产生的模糊,并非不可逆过程,其实只是所有的信息根据一些规则而进行了重新分配,通过原创 2017-04-23 22:14:00 · 9229 阅读 · 0 评论