
C/C++语言
灰太狼1号
C++,Java,数字图像处理,数据结构与算法,机器学习
展开
-
Accelerrated C++ Exercise 3-3
#include#include#include#include#includeusing std::cin;using std::cout;using std::endl;using std::sort;using std::string;using std::vector;using std::map;class wordcount { public: word原创 2013-11-12 19:32:33 · 616 阅读 · 0 评论 -
关联数组Map<...>
map 是键-值对的集合。map 类型通常可理解为关联数组(associative array):可使用键作为下标来获取一个值,正如内置数组类型一样。而关联的本质在于元素的值与某个特定的键相关联,而并非通过元素在数组中的位置来获取。一:键类型的约束 在使用关联容器时,它的键不但有一个类型,而且还有一个相关的比较函数。所用的比较函数必须在键类型上定义严格弱排序(strict原创 2013-11-12 20:27:29 · 1116 阅读 · 0 评论 -
避免 C/C++ 程序一闪而过的方法
1.Windows 环境下,直接双击(如果您设置了单击打开,那就是单击)C 或 C++(简称 C/C++)程序,或者直接在某些集成开发环境中(如 Dev-C++)编译运行 C/C++ 程序,会出现程序一闪而过或者程序接收了输入后直接退出的现象,导致看不到运行结果。这不是程序的问题,而是因为程序运行结束,自动关闭了运行窗口。解决办法有如下几种:1. 先运行 Windows 下的 MS-D转载 2013-11-12 17:25:34 · 2076 阅读 · 0 评论 -
控制符控制输出格式
1.使用控制符控制输出格式控制符 作用 dec 设置整数的基数为10 hex 设置整数的基数为16 oct 设置整数的基数为8 setbase(n) 设置整数的基数为n(n只能是16,10,8之一) setfill(c) 设置填充字符c,c可以是字符常量或字符变量 setprecision(n) 设置实数的精度为n位。在以一般十进原创 2013-11-21 15:21:30 · 3989 阅读 · 0 评论 -
stringstream介绍
iostream istream 从流中读取 ostream 写到流中去 iostream 对流进行读写;从 istream 和 ostream 派生而来fstream ifstream 从文件中读取;由 istream 派生而来 ofstrea原创 2013-11-05 10:53:28 · 628 阅读 · 0 评论 -
泛型算法
每个泛型算法的实现都独立于单独的容器。这些算法还是大而不全的,并且不依赖于容器存储的元素类型。一,泛型算法步骤1. 顺序检查每个元素。2. 如果当前元素等于要查找的值,那么返回指向该元素的迭代器。3. 否则,检查下一个元素,重复步骤 2,直到找到这个值,或者检查完所有的元素为止。4. 如果已经到达集合末尾,而且还未找到该值,则返回某个值,指明要查找的值在这个集合中不存在。二原创 2013-11-03 19:14:24 · 714 阅读 · 0 评论 -
main(int argc,char **argv)
argc是命令行总的参数个数 argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数 命令行后面跟的用户输入的参数,比如: int main(int argc, char* argv[]){ int i; for (i = 0; ii++)coutcin>>i; return 0; } 执行时敲入 F:\MYDOCU~1\TEM转载 2013-11-03 21:01:54 · 695 阅读 · 0 评论 -
VS 常用快捷键
Shift+Alt+Enter: 切换全屏编辑Ctrl+B,T / Ctrl+K,K: 切换书签开关Ctrl+B,N / Ctrl+K,N: 移动到下一书签Ctrl+B,P: 移动到上一书签Ctrl+B,C: 清除全部标签Ctrl+I: 渐进式搜索Ctrl+Shift+I: 反向渐进式搜索Ctrl+F: 查找Ctrl+Shift+F: 在文件中查找F3: 查找下一个Shif原创 2013-11-14 19:19:45 · 756 阅读 · 0 评论 -
Accelerated C++ Exercise 5-0(frame)
#ifndef GUARD_pics_h#define GUARD_pics_h#include #include std::string::size_type width(const std::vector&);std::vector frame(const std::vector&); std::vector vcat(const std::vector& , const st原创 2013-11-16 21:13:47 · 689 阅读 · 0 评论 -
项目由vs2005移植vs2010的问题及解决方法
项目由vs2005移植vs2010的问题及解决方法一般情况下,由vs2005移植到vs2010是没有什么大问题,基本上都是小问题, 另外建议使用vs2010英文版,中文版不太习惯啊,编译出问题都显示中文,想google一下都麻烦呢。本人就遇到以下几种问题,前提是转换成功后。1.本人项目使用到qt的库,之前在vs2005使用4.7.4,由于下载了新版本的库4.8.2,所以转载 2014-03-07 10:17:58 · 1502 阅读 · 0 评论 -
Accelerrated C++ Exercise 3-0 (3-6)
#include#include#include#include#include#includeusing std::cin;using std::cout;using std::endl;using std::sort;using std::streamsize;using std::string;using std::vector;using std::setprec原创 2013-11-12 18:40:09 · 724 阅读 · 0 评论 -
Qt 从QWebKit到QWebEngine
目录QWebKit与QWebEngine的区别QtWebEngine模块升级流程更改头文件中文问题平台相关性问题QWebKit与QWebEngine的区别QtWebEngine模块模块中,Qt WebEngine Core是基于chromium的核心,widgets、WenEngine和 process主要分别针对桌面、QML等需求。 与WebKi...原创 2018-12-07 11:18:09 · 4936 阅读 · 0 评论 -
值得推荐的C/C++框架和库
值得学习的C语言开源项目- 1. WebbenchWebbench是一个在Linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下载链接:http://home.tiscali.c转载 2016-11-23 10:54:43 · 657 阅读 · 0 评论 -
DLL编写教程
DLL编写教程DLL的优点简单的说,dll有以下几个优点:1) 节省内存。同一个软件模块,若是以源代码的形式重用,则会被编译到不同的可执行程序中,同时运行这些exe时这些模块的二进制码会被重复加载到内存中。如果使用dll,则只在内存中加载一次,所有使用该dll的进程会共享此块内存(当然,像dll中的全局变量这种东西是会被每个进程复制一份的)。2)转载 2016-08-22 11:04:16 · 4085 阅读 · 2 评论 -
Prime C++ Exercise 2.11 编写程序,要求用户输入两个数——底数(base)和指数 (exponent),输出底数的指数次方的结果。
#include int main(){ //局部对象 int base,exponent; long result=1; //读入底数、指数 std::cout<<"Place enter base and exponent :"<<std::endl; std::cin>>base>>exponent; if (exponent<0) { std::cout<<"原创 2015-11-12 15:53:07 · 1316 阅读 · 0 评论 -
Prime C++ copy 构造函数
调用时机1. 对象以值传递的方式传入函数参数#include using namespace std;class CExample {private: int a;public: //构造函数 CExample(int b) { a = b; cout<<"creat: "<<a<<endl; } //拷贝构造 CExample(const原创 2015-11-12 21:22:02 · 680 阅读 · 0 评论 -
预处理命令详解
预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。可见预处理过程先于编译器对源代码进行处理。在C语言中,并没有任何内在的机制来完成如下一些功能:在编译时包含其他源文件、定义宏、根据条件决定编译时是否包含某些代码。要完成这些工作,就 需要使用预处理程序。尽管在目前绝大多数编译器都包含了预处理程序,但通常认为它们是独立于编译器的。预处理过程读入源代码,检查包含预转载 2013-11-03 12:38:24 · 843 阅读 · 0 评论 -
0014算法笔记——【动态规划】凸多边形最优三角剖分
1、问题相关定义: (1)凸多边形的三角剖分:将凸多边形分割成互不相交的三角形的弦的集合T。 (2)最优剖分:给定凸多边形P,以及定义在由多边形的边和弦组成的三角形上的权函数w。要求确定该凸多边形的三角剖分,使得该三角剖分中诸三角形上权之和为最小。 凸多边形三角剖分如下图所示: 2、最优子结构性质: 若凸(n+1)边形P={V转载 2013-10-28 21:49:34 · 1195 阅读 · 0 评论 -
#include<>
C/C++头文件#include //设定插入点#include //字符处理#include //定义错误码#include //浮点数处理#include //文件输入/输出#include //参数化输入/输出#include //数据流输入/输出#include //定义各种数据类型最值转载 2013-10-30 17:45:51 · 1999 阅读 · 0 评论 -
运算符的重载问题
不能重载的运算符包括(::域运算符;. *成员指针访问运算符;. 成员访问运算符;?: 条件运算符)重载的两种方式:一:作为某个类的成员函数此时注意类的成员函数有一个隐含的参数,这个参数是this 指针,因此,如果将一个双目运算符定义为类的成员函数只需一个参数,单目运算符无参数;二:作为独立的运算符函数与实际的参数个数相同即可几点特殊之处:1.’=';“()”;“【原创 2013-10-26 21:57:16 · 1391 阅读 · 0 评论 -
const关键字
一、const关键字1.如果把const放在变量类型名前,说明这个变量的值是保持不变的,该变量必须在定义时初始化,初始化后对它进行的任何赋值都是非法的。2.当指针或者引用指向一个常量时,必须在类型名前使用const标识这个指针或者引用指向的“变量”为常量,没有的话就是语法错误。如:void main(){ const int a=10; const int* p= &a;原创 2013-10-21 16:21:31 · 523 阅读 · 0 评论 -
类的成员函数参数定义为类的对象(匿名对象)
class myclass{public: myclass(int a) { cout<<a<<"Constructor!"<<endl; x=a; } void show(myclass my) { cout<<"Function:x="<<my.x<<endl; } ~myclass() { cout<<x<<"Deatructor!"<<endl; }原创 2013-10-21 20:17:47 · 2091 阅读 · 0 评论 -
运算符重载之——输入和输出操作符
一:输出操作符#includeusing namespace std;class String{ friend ostream& operator<<(ostream& os,const ClassType &object); os<<object; return os;}第一个形参是对 ostream 对象的引用,在该对象上将产生输出。ostream 为非 c原创 2013-10-27 13:22:49 · 971 阅读 · 0 评论 -
友元函数
#includeusing namespace std;class Customer{ friend class BankQueue;//将BankQueue定义为Customer的友元类private: int _account;//银行账号 int _amount;//金额public: Customer(int account=-1,int amount=原创 2013-10-26 17:42:18 · 839 阅读 · 0 评论 -
static的用法
1.一个类的静态成员是用来表示类的属性的成员,而不是对象的属性的成员。2.类定以后,static就存在;而非静态成员只有生命对象后才存在。3.类的静态成员是类的特性,通过类名来访问。4.静态成员函数只能访问静态数据成员,而非静态成员既能访问静态成员,也能访问非静态成员。5.类的静态数据成员必须在程序的全局域进行初始化;初始化时,需要说明静态成员所属的类域,并说明类型。原创 2013-10-26 16:47:36 · 1546 阅读 · 0 评论 -
左值与右值
左值:C/C++语言中可以放在赋值符号左边的变量,左值表示存储在计算机内存的对象,左值相当于地址值。右值:当一个符号或者常量放在操作符右边的时候,计算机就读取他们的“右值”,也就是其代表的真实值,右值相当于数据值C/C++语言中可以放在赋值符号左边的变量,即具有对应的可以由用户访问的存储单元,并且能够由用户去改变其值的量。左值表示存储在计算机内存的对象,而不是常量或计算的结果。或者原创 2013-10-19 09:43:49 · 730 阅读 · 0 评论 -
new个二维数组
#define N 5#define M 5#define L 5int** a= new int*[N ];for (int i = 0; i < N ; ++i){ a[i] = new int[M];}delete的时候,反过来就行了:for (int i = 0; i < N; ++i) { delete[] a[i]; }原创 2013-10-13 16:35:59 · 482 阅读 · 0 评论 -
字符串流
iostream 标准库支持内存中的输入/输出,只要将流与存储在程序内存中的string 对象捆绑起来即可。此时,可使用 iostream 输入和输出操作符读写这个 string 对象。标准库定义了三种类型的字符串流:• istringstream,由 istream 派生而来,提供读 string 的功能。• ostringstream,由 ostream 派生而来,提供写 st原创 2013-10-31 18:53:41 · 624 阅读 · 0 评论 -
PDB文件
一 什么是PDB文件大部分的开发人员应该都知道PDB文件是用来帮助软件的调试的。但是他究竟是如何工作的呢,我们可能并不熟悉。本文描述了PDB文件的存储和内容。同时还描 述了debugger如何找到binay相应的PDB文件,以及debugger如何找到与binay对应的源代码文件。本文适用于所有的Native和 Managed的开发人员。在开始前,我们先定义2个术语:private转载 2013-10-31 20:25:39 · 658 阅读 · 0 评论 -
派生类构造函数,重构
派生类构造函数派生类的构造函数受继承关系的影响,每个派生类构造函数除了初始化自己的数据成员之外,还要初始化基类。一,合成的派生类默认构造函数派生类的合成默认构造函数:除了初始化派生类的数据成员之外,它还初始化派生类对象的基类部分。基类部分由基类的默认构造函数初始化。第一步:调用基类的默认构造函数,初始化基类成员。第二部:用常规变量初始化规则初始化派生类的成员,也就是说派生类的成原创 2013-11-02 12:53:59 · 1017 阅读 · 0 评论 -
容器与继承
我们希望使用容器(或内置数组)保存因继承而相关联的对象。但是,对象不是多态的,这一事实对将容器用于继承层次中的类型有影响。例如:#include#include#includeusing namespace std;class base{public: base(const string &book="",double sales_price=0.0) :原创 2013-11-02 20:45:40 · 768 阅读 · 0 评论 -
名字查找与继承(函数调用的确认)
理解 C++ 中继承层次的关键在于理解如何确定函数调用。确定函数调用遵循以下四个步骤:1. 首先确定进行函数调用的对象、引用或指针的静态类型。2. 在该类中查找函数,如果找不到,就在直接基类中查找,如此循着类的继承链往上找,直到找到该函数或者查找完最后一个类。如果不能在类或其相关基类中找到该名字则调用是错误的。3. 一旦找到了该名字,就进行常规类型检查,查看如果给定找到的定义,原创 2013-11-02 18:43:39 · 772 阅读 · 0 评论 -
istream_iterator和ostream_iterator
istream_iterator及ostream_iterator使用实例并利用ostream_iterator输出vector输入:cert ecjtu输出:cert ecjtu */vector vecStr;istream_iterator infile(cin);istream_iterator eoffile;ostream_iterator转载 2013-11-16 20:53:57 · 1219 阅读 · 0 评论 -
0031算法笔记——【回溯法】旅行员售货问题和圆排列问题
1、旅行员售货问题 问题描述 某售货员要到若干城市去推销商品,已知各城市之间的路程(旅费),他要选定一条从驻地出发,经过每个城市一遍,最后回到驻地的路线,使总的路程(总旅费)最小。 问题分析 旅行售货员问题的解空间是一棵排列树。对于排列树的回溯法与生成1,2,……n的所有排列的递归算法Perm类似。开始时x=[1,2,……n],则相应的排转载 2013-10-27 12:11:49 · 1611 阅读 · 0 评论 -
C++复制控制
#include#include#includeusing namespace std;class base{public: base(const string &book="",double sales_price=0.0) :isbn(book), price(sales_price) { cout<<"base(const string &,dou原创 2013-11-02 15:38:29 · 680 阅读 · 0 评论 -
关于C++的子类指针指向父类
原文地址:关于C++的子类指针指向父类.作者:leon 1,直接用基类指针引用基类对象2,直接用派生类指针引用派生类对象3,用基类指针引用一个派生类对象,由于派生类对象也是基类的对象,所以这种引用是安全的,但是只能引用基类成员。若试图通过基类指针引用那些只在派生类中才有的成员,编译器会报告语法错误。(解决该问题的答案是虚函数和多态性)4,用派生类指针引用基类的对象。这种引用转载 2013-11-02 11:37:58 · 796 阅读 · 0 评论 -
虚析构函数
一,产生原因:1,自动调用基类部分的析构函数对基类的设计有重要影响。删除指向动态分配对象的指针时,需要运行析构函数在释放对象的内存之前清除对象。处理继承层次中的对象时,指针的静态类型可能与被删除对象的动态类型不同,可能会删除实际指向派生类对象的基类类型指针。2,如果删除基类指针,则需要运行基类析构函数并清除基类的成员,如果对象实际是派生类型的,则没有定义该行为。要保证运行适当的析构函数,基原创 2013-11-02 13:28:10 · 681 阅读 · 0 评论 -
容器
关联容器(Associative Container)与顺序容器(Sequential Container)的本质区别在于:关联容器是通过键(key)存储和读取元素的,而顺序容器则通过元素在容器中的位置顺序存储和访问元素。 关联容器支持通过键来高效地查找和读取元素,两个基本的关联容器是map和set。map的元素是“键-值”对的二元组形式:键用作元素在map中的索引,而值则表示所存储转载 2013-11-16 21:11:41 · 716 阅读 · 0 评论 -
如何new与delete各种二维数组
#define M 10U#define N 20第一种,可以直接[][]访问。但是内存不连续,不是很推荐使用,除非M\N都不确定定义的时候int** pNum;//以int为例pNum = new int*[M];for(int i=0;i{ pNum[i]=new int[N];}//删除的时候是原创 2013-10-17 21:54:15 · 869 阅读 · 0 评论