C++
南窗客斯黄
学Python,找知了课堂
展开
-
C++ MP3播放器按钮类似功能实现
// Class01.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include #include #include #include #include using namespace std;class Mp3M原创 2013-04-15 19:34:15 · 1439 阅读 · 0 评论 -
在规定次数内找出数组中最大值和最小值
RT:编写一个函数用不多于3n/2的平均比较次数,在一个线性表L中找到最大和最小值的元素。分析:如果在查找最大和最小值的元素时各扫描一遍所有元素,则至少要比较2n次,为此,使用一趟扫描找到最大和最小值的元素才是最优的。算法如下:void maxmin(int array[],int length){ int max,min,i; max = array[0];原创 2013-09-22 11:09:28 · 1913 阅读 · 0 评论 -
工厂模式
今天看完设计模式的第一节,工厂模式。现在将源代码写下,记录每一个脚印。工厂模式:用一个工厂类管理其他类。这样代码的灵活性更强。#include #include #include using namespace std;//计算类的基类,所有新计算方式都继承本类,可以让程序灵活性更强。class Calculate{public: Calculate(){}原创 2013-05-29 16:53:53 · 859 阅读 · 0 评论 -
typename的两个作用
C++中,typename的作用有两个:1.模板中用于引入一个模板参数2.当访问一个类或结构体中的自定义类型的时候,用typename修饰,防止语法歧义。考虑以下代码:templatevoid foo(const T& t){// 声明一个指向某个类型为T::bar的对象的指针 T::bar* p;}struct StructWithBarAsType{ typed原创 2013-05-24 16:35:38 · 1134 阅读 · 0 评论 -
New Features in C++11 学习
一、for循环:1.举例:vector ve = {0,1,2,3,4,5,6,7,8,9,};for( auto &r : ve) r *= 2;2.相当于:for(auto beg = ve.begin(),end = ve.end();beg != end;++beg){ auto &r = (*beg); r *= 2;}二、Lambda原创 2013-05-16 15:42:24 · 1173 阅读 · 0 评论 -
VS2010快捷键大全
VS2010版快捷键Ctrl+E,D ----格式化全部代码 Ctrl+E,F ----格式化选中的代码 CTRL + SHIFT + B生成解决方案 CTRL + F7 生成编译 CTRL + O 打开文件 CTRL + SHIFT + O打开项目 CTRL + SHIFT + C显示类视图窗口 F4 显示属性窗口 SHIFT + F4显示项目属性窗口 C转载 2013-05-23 09:53:21 · 1143 阅读 · 0 评论 -
C++迭代器类型
STL 主要是由 containers(容器),iterators(迭代器)和 algorithms(算法)的 templates(模板)构成的. 对应于它们所支持的操作,共有五种 iterators(迭代器)。 input output \ /转载 2013-05-21 22:09:33 · 1655 阅读 · 0 评论 -
allocator类
allocator类就像C中的malloca函数,却不像是C中的new关键字,因为new关键字和allocator做的事情不同:1.allocator只是分配内存2.new关键字先分配对象,再构造一个对象。所以说,allocator使得内存分配和创建对象分隔开来了。用allocator类一般需要经过以下几步:1.调用allocator开辟一块内存。2.调用construct原创 2013-05-21 16:28:35 · 1505 阅读 · 1 评论 -
顺序容器list、vector、deque的优劣
list容器的内存不是连续的,相当于链表,这样就可以理解他的特点了:1.可以很方便的对容器中的任意位置进行删除和添加2.因为他的内存分配不是连续的,所以如果要随机访问一个元素,必须从头开始遍历,知道找到合适的元素,所以随机访问一个list容器代价会比较大。vector容器的内存是连续的,相当于数组(本质上他就是数组),所以我们也可以知道他有哪些特点:1.可以很方便的进行原创 2013-05-20 13:43:14 · 1446 阅读 · 0 评论 -
STL算法学习
一、accumulate:1.功能:该算法是对容器中指定范围的元素进行相加。2.举例: vector VeTemp; VeTemp.push_back("hello"); VeTemp.push_back("world"); string temp = "huang"; string sum = ::accumulate(VeTemp.begin(),VeTemp.end(原创 2013-05-15 21:52:34 · 1058 阅读 · 0 评论 -
一个简单的关于函数指针的实例
请写出一个返回类型为 void (*)(int *,int);参数为一个int ,函数名称为ff 的函数。分析:首先我们知道 int (*cmpFun)(const int& a,const int& b) 这句话代表的意思是将cmpFun声明为 指向 int (const int& a,const int& b) 类型的指针。所以我们容易得出,以上的函数写法是:void原创 2013-05-05 15:08:12 · 1053 阅读 · 0 评论 -
在Qt与vs2010下字符串嵌入变量的方法
通过做了两个项目,都是与数据库有关的。在写sql语句的时候都要将变量嵌入到string类型的变量中。现在将方法解释如下:1.Qt下:例如:int FriendID = 1;string SQLSelect = "select friend_name from tb_friend where friend_id = '+FriendID+'";2.vs2010下例如:int Frien原创 2013-05-15 20:51:04 · 1706 阅读 · 0 评论 -
对static的一点点理解
今日看了一些代码,发现static有以下几个作用:1.隐藏性:static的函数以及static的变量只在本作用域中有效,不能在其他作用域被使用。这其中就涉及到一个全局变量与全局静态变量的区别了,他们都是在程序结束后消失,唯一的区别就是全局静态变量只能在本作用域中被使用。另外,对于大型程序而言,静态变量显得尤其重要,因为很有可能出现重名,如果申明为静态函数或变量则不用怕会出现重名的情况。2原创 2013-05-01 17:51:25 · 937 阅读 · 0 评论 -
用VC++对DOS编程控制(坐标)
控制台窗口界面编程控制〇、摘要一、概述二、控制台文本窗口的一般控制步骤三、控制台窗口操作四、文本属性操作五、文本输出六、文本操作示例七、滚动和移动八、光标操作九、读取键盘信息十、读取鼠标信息十一、结语补充篇--经典程序(Internet资源)摘要:文本界面的控制台应用程序开发是深入学习C++、掌握交互系统的实现方法的最简单的一种手段。然而转载 2013-04-17 14:36:40 · 1489 阅读 · 0 评论 -
自定义vector
今天上课老师讲了一下关于new运算符的用法,其中有一个是先申请内存,然后再用对象初始化内存的用法。当讲到这里的时候,老师用了一个自定义vector的例子作为示范。网上有很多关于自定义vector的例子,但是大多没有解释为什么要先申请内存空间再初始化内存的原因。现在解释一下原因:首先我们要知道T* p = new T;这个代码的所做的事情。他做了三件事,第一、初始化内存,第二原创 2013-04-16 23:35:43 · 1361 阅读 · 0 评论 -
C语言整型和字符串之间的转换
C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。以下是用itoa()函数将整数转 换为字符串的一个例子: # include # include void main (void) { int num = 100; char str[25]; itoa(num, str转载 2013-09-27 15:32:26 · 6297 阅读 · 0 评论