10 2012 档案

摘要:// 第七章 自定义数据类型// 没有该章ppt,只能直接按实例学习了#include "stdafx.h"#include <iostream>using namespace std;using namespace System;//01自定义数据结构/*struct RECTANGLE{ int Left; int Top; int Right; int Bottom;};//计算矩形的面积long Area(RECTANGLE& aRect);void MoveRect(RECTANGLE& aRect, int x, int y);int 阅读全文
posted @ 2012-10-28 23:33 简单--生活 阅读(408) 评论(0) 推荐(0) 编辑
摘要:// 第六章 程序结束//(二).cpp: 主项目文件。//1 什么函数指针//2 如何定义和使用函数指针//3 如果定义和使用函数指针的数组//4 异常的概念,如何编定处理异常和异常处理程序//5 如何编写多个同名函数,以自动处理不同类型的数据//6 函数模板的概念,如何定义和使用函数模板//7 如何使用我个函数编写有实际价值的本地C++程序示例//8 C++/CLI中类函数的概念//9 如何使用多个函数编写有有实际价值的C++/CLI程序示例#include "stdafx.h"#include <iostream>using namespace std;u 阅读全文
posted @ 2012-10-28 19:35 简单--生活 阅读(573) 评论(0) 推荐(0) 编辑
摘要://5.2.4 给函数传递引用实参//将函数的某个形参指定为引用,将改变给该形参传递数据的方法,使用的方法不是按值传递,//其中实参在传递给函数之前被复制,//而是按引用传递--即形参扮演被传递实参的别名角色,该机制消除了任何复制工作,允许函数直接访问调用函数中的实参,同时意味着,传递和使用指针时所需的取消引用操作也是多余的/*int incr10(int& num);int main(array<System::String ^> ^args){ int num = 3; int value = 6; int result = incr10(num); cout<& 阅读全文
posted @ 2012-10-27 14:43 简单--生活 阅读(259) 评论(0) 推荐(0) 编辑
摘要:// 第五章 程序结构.cpp: 主项目文件。#include "stdafx.h"#include <iostream>using namespace std;using namespace System;/*double power (double, int);int main(array<System::String ^> ^args){ 如何声明并编写自己的C++函数 函数参数的定义和使用方法 如何传递进出函数的数组 按值传递的意义 如何给函数传递指针 如何使用引用作为函数参数,按引用传递的意义 const修饰行对函数的参数影响 如何从函数中 阅读全文
posted @ 2012-10-26 00:18 简单--生活 阅读(430) 评论(0) 推荐(0) 编辑
摘要://练习题一: /*int arraySize = 5; //数组的长度 double* values = new double[arraySize]; //初始化一个values的指针,成员为五个 double* temp = 0; //定义一个零时指针 double inputValue = 0.0; int index = 0; for(;;) { cout<<"请输入数值(按0退出):"; cin>>inputValue; if(inputValue == 0.0){ break; } values[index] = inputValue; 阅读全文
posted @ 2012-10-25 23:20 简单--生活 阅读(531) 评论(0) 推荐(0) 编辑
摘要:////////////////////////////////////////////////////////////////////////////////////////4.4 使用引用 //引用在许多方面都类似于指针,所以后们放在这里进行讨论,但实现上二者根本不是一回事 //4.4.1 引用的概念 //引用是另一个变量的别名,这样的别名可以代替原来的变量名,因为是别名而非指针,所以声明引用时必须指出所对应的变量,与指针不同的是 //我们不能修改引用,使其表示另一个变量 //4.4.2 声明并初始化引用 //long number = 0; //... 阅读全文
posted @ 2012-10-25 23:19 简单--生活 阅读(834) 评论(0) 推荐(0) 编辑
摘要:/*//学习内容数组及其使用方法如何声明和初始化不同类型的数组如何声明和使用多维数组指针及其使用方法如果声明和初始化不同类型的指针数组和指针之间的关系引用的概念及声明方法,关于使用引用的几点初步建议如何在本地C++程序中给变量动态分配内存如何在CLR程序中动态分配内存跟踪句柄和跟踪引用的概念,CLR程序中需要它们的原因如何在C++/CLI程序中处理字符串和数组内部指针的概念,创建和使用内部针的方法4.1 处理多个相同类型的数据值 4.1.2 声明数组#include "stdafx.h"#include <iostream>#include <iomani 阅读全文
posted @ 2012-10-25 23:18 简单--生活 阅读(568) 评论(0) 推荐(0) 编辑
摘要:SELECT post.ID, post.User_id, post.Title, GROUP_CONCAT( tag.Tag_valueSEPARATOR ';' ) AS tagsFROM postRIGHT JOIN tags_con_id ON tags_con_id.Post_ID = post.IDLEFT JOIN tag ON tag.Tag_id = tags_con_id.Tag_idGROUP BY post.IDLIMIT 0 , 30 ---- 表的结构 `post`--CREATE TABLE `post` ( `ID` int(11) NOT NU 阅读全文
posted @ 2012-10-25 22:02 简单--生活 阅读(6474) 评论(0) 推荐(0) 编辑
摘要:function unescape($str) { $str = rawurldecode($str); preg_match_all("/(?:%u.{4})|&#x.{4};|&#\d+;|.+/U",$str,$r); $ar = $r[0]; //print_r($ar); foreach($ar as $k=>$v) { if(substr($v,0,2) == "%u"){ $ar[$k] = iconv("UCS-2BE","UTF-8",pack("H4", 阅读全文
posted @ 2012-10-25 18:07 简单--生活 阅读(22818) 评论(0) 推荐(1) 编辑
摘要:<?phpecho "<BR>==========时间日期==========<BR>";$br = "<BR><BR>";echo date("Y-m-d");echo $br;echo date("y-M-D");//require require_once//include include_onceecho $br;echo "<BR>==========输出打印==========<BR>";$a = spri 阅读全文
posted @ 2012-10-23 11:27 简单--生活 阅读(237) 评论(0) 推荐(0) 编辑
摘要://===============================时间日期===============================//y返回年最后两位,Y年四位数,m月份数字,M月份英文。d月份几号数字,D星期几英文$date=date("Y-m-d");//include,include_once.require,require_once//require("file.php") 在PHP程序执行前就会先读入require所指定引进的文件,如出现错误是致命的。//include("file.php") 可以放在PHP程序的任何 阅读全文
posted @ 2012-10-22 13:47 简单--生活 阅读(220) 评论(0) 推荐(0) 编辑
摘要:// 第三章判断和循环/* 3.1 比较数据值 3.1.1 if语句 //A-Z 是65-90 //a-z 97-122 //有一个将小写字母转换为大写的ISO/ANSI C++库函数 toupper() 位于标准文件<ctype>中 3.1.3 扩展的if语句 3.1.4 嵌套的if-else语句 3.1.5 逻辑运算符和表达式 && 逻辑与 || 逻辑或 ! 逻辑非 3.1.6 条件运算符 3.1.7 switch语句 3.1.8 无条件转移3.2 重复执行语句块 3.2.1 循环的概念 3.2.2 for循环的变体 1. 使用continue 2. 浮点循环计 阅读全文
posted @ 2012-10-20 23:22 简单--生活 阅读(354) 评论(0) 推荐(0) 编辑
摘要:/*第二章 数据 变量和计算2.1 C++程序结构 2.1.1 程序注释 2.1.2 #include 指令---头文件 2.1.3 命名空间和using声明 2.1.4 main()函数 2.1.5 程序语句 2.1.6 空白 2.1.7 语句块 2.1.8 自动生成的控制台程序2.2 定义变量 2.2.1 命名变量 2.2.2 声明变量 2.2.3 变量的初始值 //变量写入初值还有另外一种方法,称作函数表示法, //int val(0); //int count(10);2.3 基本数据类型 //其基本的类型分为3类,即存储整数的类型,存储非整数值的类型--它们称为浮点类... 阅读全文
posted @ 2012-10-20 23:21 简单--生活 阅读(544) 评论(0) 推荐(0) 编辑
摘要:我门通常用的是十进制,也就是逢十进1,也就是可以用0,1,2,3,4,5,6,7,8,9表示个位,当到十的时候就进了一位,变成了两位10同理,八进制是逢八进1,也就是可以用0,1,2,3,4,5,6,7表示个位,当到八的时候变成了两位10,我们在八进制数10前面加上0,八进制数10就变成了010了,010表示8,015表示1*8+5=13,那么我门再看一个数046表示多少呢?表示4*8+6=42同理,十六进制是逢十六进1,也就是可以用0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f表示个位,其中a,b,c,d,e,f分别表示十进制中的10,11,12,13,14,15,在十六进制 阅读全文
posted @ 2012-10-20 21:55 简单--生活 阅读(24573) 评论(2) 推荐(1) 编辑
摘要:// 第二十五章补充内容 16 位运算//位运算直接对二进制位进行的运算,C++提供了可以对位进行操作的位运算符// & 按位与(AND)// | 按位或(OR)// ^ 按位异或(XOR)// ~ 按位非(NOT)(取反)// >> 右移动运符// >> 左移动运算符//16.1 按位与"&"运算符//补码的设计目的如下//1 统一正零和负零//2 使减法运算转换为加法运算//3 使负数在计算时与正数一样正确//订算机储存有符号整数时,是用该整数的补码进行储存,0的原码,返码,补码都是0,正数的原码,反码和补码可以简单的理解为相同, 阅读全文
posted @ 2012-10-15 21:56 简单--生活 阅读(316) 评论(0) 推荐(0) 编辑
摘要:// 第二十五章补充内容 17位字段/*#include <iostream>using namespace std;struct Date{ unsigned day: 5; unsigned month:4; unsigned year:14;};//Date类型使用的是位段结构,这里使用的是unsigned,unsigned后面跟的是位字段名,如day//在位字段后面跟一个冒号,后跟一个数字,这个数字告诉编译器为该变量分配了多少个位,如果你写1,那么这人只能表示0或者1int main(){ Date date; date.day = 12; cout<<&quo 阅读全文
posted @ 2012-10-15 21:56 简单--生活 阅读(163) 评论(0) 推荐(0) 编辑
摘要:// 第二十五章补充内容 18区域差异// 1 语言// 2 货币表示// 3 字符// 4 字符集// 5 时间表示的不同//18.1 locale类//为了解决地区差异,C++为我们提供了一个locale类//18.2 默认区域表示或全局区域表示//18.3 时间与地理设置//1 time返回系统当前的日历时间//该函数需要头文件time.h//time_t time(time_t *time)/*#include <time.h>#include <iostream>using namespace std;int main(){ struct tm *ptr; t 阅读全文
posted @ 2012-10-15 21:56 简单--生活 阅读(135) 评论(0) 推荐(0) 编辑
摘要://C++的关键字/*auto 声明自动变量,一般不使用bool 声明一个布尔型变量break 跳出当前循环asm 插入一个汇编指令case 开关语句分支catch 处理throw产生的异常char 声明一个字符弄变量class const 声明一个常量const_case 从一个const变量中抛出cintinuedefaultdelete 释放内存dodoubledynamic_cast 动态投射elseenumexplicit 仅用在构造器的正确extern 声明变量是在其他文件中声明(也可以看作是引用变量)falsefloatforfriend 允许非函数成... 阅读全文
posted @ 2012-10-15 21:56 简单--生活 阅读(295) 评论(0) 推荐(0) 编辑
摘要://第二十五章补充内容 13联合数据类型的内存占用//联合数据类型的每个成员共享同一块内存,那么这样做目的是什么呢?//由于所有成员共享一块内存,这样,我们不用为每个成员分配一块内存,因此可以大大节省了内存,/*#include <iostream>using namespace std;union U1{ char c; int i; double d;};struct S1{ char c; int i; double d;};union U2{ char c; int i;};struct S2{ char c; int i;};union U3{ char c;... 阅读全文
posted @ 2012-10-15 21:55 简单--生活 阅读(351) 评论(0) 推荐(0) 编辑
摘要://第二十五章补充内容 14匿名联合体//C++允许没有名字的联合体/*#include <iostream>using namespace std;int main(){ union{ int a; int b; }; cout<<"请输入a的值:"; cin>>a; cout<<"a:"<<a<<"\t"<<"b:"<<b<<endl; cout<<"请输入b的值:"; c 阅读全文
posted @ 2012-10-15 21:55 简单--生活 阅读(357) 评论(0) 推荐(0) 编辑
摘要:// 第二十五章补充内容 15再谈指针// 15.1 指针与数组/*#include <iostream>using namespace std;int main(){ int ch[2][3] = { {0,1,2}, {10,11,12} }; int *p1 = &ch[1][2]; //指向12的地址 int *p2 = ch[1] + 2; //指向3的地址,也就是第四个元素的地址 //最先的理解是错的,char[1]也就是第个行的数据,然后加1,不就是ch[1][2] 12 int *p3 = ch[0]; //0 int *p4 = ch[1]; //10 c 阅读全文
posted @ 2012-10-15 21:55 简单--生活 阅读(209) 评论(0) 推荐(0) 编辑
摘要:// 第二十五章补充内容 12联合数据类型union//联合体与结构体有什么不同之处//1 初始化,联合类型union只能对它的第一个成员进行初始化/*#include <iostream>#include <string>using namespace std;union people{ char name[10]; short int age; float weight;};void show(people);int main(){ people Jack={"Xlc"}; show(Jack); return 0;}void show(peop 阅读全文
posted @ 2012-10-15 21:54 简单--生活 阅读(194) 评论(0) 推荐(0) 编辑
摘要://第二十五章补充内容 9 关键字volatile//用volatile关键字声明的变量,是用来告诉编译器每次对此变量的引用都需要从内存地址中读取,即取消编译器对此变量的优化编译//volatile可以保证对特殊地址的稳定访问,不会出错//register寄存器变量/*#include <iostream>using namespace std;int dquare(volatile int *p){ return (*p)*(*p);}int func(int n){ register int i, s=0; for(i=0; i<=n; i++) { s = s+i; } 阅读全文
posted @ 2012-10-15 21:48 简单--生活 阅读(138) 评论(0) 推荐(0) 编辑
摘要:// 第二十五章补充内容 10 关键字const//const int a;//int const a//const int *a//int * const a;//int const * a const;//const int a与int const a的作用是一样的,都表示a是一个常整型数//const int *a意味着a是一个指向常整型号数的指针,换句话说,a指向的整型数是不可修改的//int * const a的意思是a是一个指向整型数的常指针,也就是说,指针a指向的整型数是可以修改的,但指针a是不可修的//int const * a const意味着a是一个指向常整型数的常指针,也 阅读全文
posted @ 2012-10-15 21:48 简单--生活 阅读(179) 评论(0) 推荐(0) 编辑
摘要://第二十五章补充内容 11 关键字mutable//我们知道修饰为const的成员函数,是不能修改类的数据成员的,但是这并不表示它不可以修改经过mutable修饰后的数据成员,关键字mutable将其后的数据修饰为可供const成员函数进行修改的数据成员/*#include <iostream>#include <string>#include <iomanip>using namespace std;class A{public: A(int i):x(i){} int add()const //注意这里是const { return ++x; } vo 阅读全文
posted @ 2012-10-15 21:48 简单--生活 阅读(146) 评论(0) 推荐(0) 编辑
摘要:// 第二十五章补充内容 5 不能为0的变量/*#define DEBUG#include <iostream>#include <string>using namespace std;#ifndef DEBUG#define ASSCET(x)#else#define ASSCET(x)\ if(!(x))\ {\ cout<<"错误!ASSERT("<<#x<<")宏函数执行失败"<<endl;\ cout<<"错误的代码出现在第"<< 阅读全文
posted @ 2012-10-15 21:47 简单--生活 阅读(196) 评论(0) 推荐(0) 编辑
摘要:// 第二十五章补充内容 6 用宏函数来输出表达式的值/*#define DEBUG#include <iostream>using namespace std;#ifndef DEBUG#define show(x)#else#define show(x)\ cout<<#x<<": \t"<<x<<endl;#endifint main(){ int x = 9; show(x); //9 int *y = &x; show(*y); //9 show(y); //内存地址 char *ch=" 阅读全文
posted @ 2012-10-15 21:47 简单--生活 阅读(161) 评论(0) 推荐(0) 编辑
摘要:// 第二十五章补充内容 7 调试的级别/*#include <iostream>#include <string>using namespace std;#define DEBUG 2#if DEBUG < 2 #define ASSERT(x)#else#define ASSERT(x)\if(!(x))\{\ cout<<"错误!Assert("<<#x<<")宏函数执行失败"<<endl;\ cout<<"错误代码出现在第"<< 阅读全文
posted @ 2012-10-15 21:47 简单--生活 阅读(210) 评论(0) 推荐(0) 编辑
摘要://第二十五章补充内容 8 C++类型转换及运行时类型信息(RTII)//C++中有四种新风格的类型转换操作符,每一种操作符返回的是一个根据类型转换操作符规则转换后的对像//cast_operator<type>(object)//type代表要转换的类型//object代表要转换的对像//而cast_operator则是执行转换的操作符,它通常有四种形式,分别为动态类型转换,静态类型转换,重新解释类型转换和常类型转换符//8.1 动态类型转换符//动态类型转换符将一个基类的引用或者指针转换为一个派生类的引用或者指针,我们把它叫做向下类型转换//或者将一个派生类的引用或指针转换为基 阅读全文
posted @ 2012-10-15 21:47 简单--生活 阅读(1303) 评论(0) 推荐(0) 编辑
摘要://第二十五章补充内容 3 assert()宏//有的编译器还提供了assert()宏,这个宏在许多书中被翻译为断言,它的作用是当assert()的参数为真时,返回真,假如参数值为假,那么它将执行某种操作/*#include <iostream>#include <assert.h>using namespace std;void main(){ float a, b; cout<<"请输入除数:"<<endl; cin>>a; cout<<"请输入被除数:"<<endl 阅读全文
posted @ 2012-10-15 21:46 简单--生活 阅读(165) 评论(0) 推荐(0) 编辑
摘要://第二十五章补充内容 4 尝试编写一个简单的assert()宏/*#include <iostream>using namespace std;//结尾处的正斜杠"\"将本行语句与后面的语句连为一句#define ASSERT(x)\ if(!(x))\ {\ cout<<"错误!ASSERT("<<#x<<")宏函数执行失败"<<endl; \ cout<<"错误代码出现在第"<<__LINE__<<"行& 阅读全文
posted @ 2012-10-15 21:46 简单--生活 阅读(139) 评论(0) 推荐(0) 编辑
摘要://第二十五章补充内容 2 预定义的宏/*__DATE__ 进行预处理的日期("Mmm dd yyyy"形式的字符串方字)__FILE__ 代表当前源代码文件名的字符串文字__LINE__ 代表当前源代码中的行号的整数常量__TIME__ 源文件编译时间,格式是"hh: mm: ss"__FUNCDNAME__ 当前所有函数名*//*#include <iostream>using namespace std;void show(){ cout<<"该语句所在函数名为:"<<__FUNCDNAME_ 阅读全文
posted @ 2012-10-15 00:34 简单--生活 阅读(158) 评论(0) 推荐(0) 编辑
摘要://第二十五章补充内容 1 预处理过程//1.1 预处理指令/*# 空指令,没有任何效果#include 从该提令位置处包含一个源代码文件#define 定义一个宏#undef 取消已定义的宏#ifdef 如果给定的宏已经定义,则编译下面的代码#if 如果给定的条件成立,就编译下面的代码#elif 如果前面#if给定的条件不成立,而当前给定的条件成立,那么编译下面的代码#endif 结束一个#if...#else条件编译块#error 停止编译并显示错误信息*///1.2 #include 指令//1.3 #d... 阅读全文
posted @ 2012-10-15 00:33 简单--生活 阅读(203) 评论(0) 推荐(0) 编辑
摘要:解决方法:php标准配置正是通过'/tmp/mysql.sock',但一些mysql安装方法将mysql.sock放在/var/lib/mysql.sock或者其他地方,你可以通过修改/etc/my.cnf文件来修正它,打开文件更改一下: [mysqld] socket=/var/lib/mysql.sock 假如更改后mysql程序连不上,可以使用下面的方法继续修改: [mysql] socket=/tmp/mysql.sock 另外还可以用下面的方法: ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sockCan not connec 阅读全文
posted @ 2012-10-12 13:08 简单--生活 阅读(448) 评论(0) 推荐(1) 编辑
摘要://第二十四章 异常和错误处理 6异常类与模板的关系#include <iostream>using namespace std;const int num=5; class wrong{};template<class T>class people{public: people(int Size=num); ~people(){ delete []p; }; int&operator[](int off); const int&operator[](int off)const; int GetSize()const{ return size;} //c 阅读全文
posted @ 2012-10-11 00:27 简单--生活 阅读(278) 评论(0) 推荐(0) 编辑
摘要://第二十四章 异常和错误处理 5异常类的虚函数#include <iostream>using namespace std;#include <iostream>using namespace std;const int num=5; class people{public: people(int Size=num); ~people(){ delete []p; }; int&operator[](int off); const int&operator[](int off)const; int GetSize()const{ return size 阅读全文
posted @ 2012-10-11 00:19 简单--生活 阅读(275) 评论(0) 推荐(0) 编辑
摘要://第二十四章 异常和错误处理 4创建异常类的成员函数#include <iostream>using namespace std;#include <iostream>using namespace std;const int num=5; class people{public: people(int Size=num); ~people(){ delete []p; }; int&operator[](int off); const int&operator[](int off)const; int GetSize()const{ return s 阅读全文
posted @ 2012-10-11 00:03 简单--生活 阅读(167) 评论(0) 推荐(0) 编辑
摘要:// 第二十四章 异常和错误处理 3异常的派生#include <iostream>using namespace std;const int num=5; class people{public: people(int Size=num); ~people(){ delete []p; }; int&operator[](int off); const int&operator[](int off)const; //int GetSize(){ return size; } int GetSize()const{ return size;} class wrong 阅读全文
posted @ 2012-10-10 23:41 简单--生活 阅读(177) 评论(0) 推荐(0) 编辑
摘要:C++位域Visual Studio 2012 - Visual C++C++位域 类和结构可以包含比整型占用小于存储的成员。 这些成员指定为位域。 位域 成员声明 规范的语法如下: declarator : constant-expression 备注 (可选) declarator 是该成员在程序捕获的名称。 它必须是整型 (包括枚举类型)。 常数表达式 指定该成员在结构占用的位数。 匿名位域,即不标识符的位域成员 )可用于填充使用。 说明 宽度为 0 的一个未命名的位域强制下一位域的对齐到下一 type 边界, type 是该成员的类型。 下面的示例声明一位域的机... 阅读全文
posted @ 2012-10-10 13:48 简单--生活 阅读(282) 评论(0) 推荐(0) 编辑
摘要:// 第二十四章 异常和错误处理//1异常/*#include <iostream>using namespace std;class wrong{};void error(){ cout<<"出错"<<endl; throw wrong();}int main(){ try{ error(); } catch(wrong) { cout<<"该错误已经解决"<<endl; } return 0;}*/#include <iostream>using namespace std;co 阅读全文
posted @ 2012-10-09 00:08 简单--生活 阅读(147) 评论(0) 推荐(0) 编辑
摘要://第二十三模板 18.4算法类/*STL(标准模板库)通用算法共分四大类不变序列算法 不对其所作用的容器进行修改改变序列算法 对其所作用的容器进行修改排序算法 对容器中的元素采用多种方式进行排序数值算法 对容器中的元素进行数值计算这些算法全部在标准命名空间std中的<algorithm>中定义*///1 函数对像//要理解这些标准算法是如何工作的,我们必须了解函数对象的,函数对像即定义的重载运算符()/*#include <iostream>using namespace std;template<class T>class show{public: .. 阅读全文
posted @ 2012-10-04 20:02 简单--生活 阅读(273) 评论(0) 推荐(0) 编辑
摘要://第二十三模板 18.5数值算法//STL的数值算法可以对一个序列的元素进行四种计算,接下来将逐步讲述这四种计算方法//(1)accumulate(first,last,init)/*#include <iostream>#include <algorithm>#include <vector>#include <numeric>using namespace std;void show(int val){ cout<<val<<endl;}int main(){ vector<int>one; for(in 阅读全文
posted @ 2012-10-04 20:02 简单--生活 阅读(193) 评论(0) 推荐(0) 编辑
摘要://第二十三模板 18.3.3 多重映射 multimaps//多重映射Multimaps和maps映射很相似,但是MultiMaps允许重复的关键字,这使得nultimap在某些情下会更有用,比如说在电话簿中同一个人可以多个电话号码//1 插入元素//multimap模板类的insert方法为我们解决了插入的难题//2 查找第一个与关键字相关联的值//与map类似, multimap具备两个版本重载的find()成员函数//3查找多个与同一个关键字相关联的值//假如我们想要获得multimap容器中所有与要查找的关键字相关联的值,可以使用equal_range()函数//pair equal 阅读全文
posted @ 2012-10-04 20:01 简单--生活 阅读(343) 评论(0) 推荐(0) 编辑
摘要://第二十三模板 18.3.4多重集合 multiset//多重集合(Multisets)和集合(sets)相似,只不过前者支持有重复元素,也就是说可以允许多个同一个元素的集合/*#include <iostream>#include <set>#include <string>using namespace std;int main(){ multiset<string>one; one.insert("陈群"); one.insert("陈群"); multiset<string>::con 阅读全文
posted @ 2012-10-04 20:01 简单--生活 阅读(213) 评论(0) 推荐(0) 编辑
摘要://第二十三模板 18.3.5 位集合//Bitsets给程序员提供一种位集合的数据结构,这种位集合的通二进制的因此Bitsets提供了许多位操作符,比如!= == &= ^= |= ~ <<= >>= []//1 Bitsets的创建/*#include <iostream>#include <bitset>using namespace std;int main(){ bitset<8>bs( (long)131 ); for(int i=(int)bs.size()-1; i>=0; i--) { cout< 阅读全文
posted @ 2012-10-04 20:01 简单--生活 阅读(157) 评论(0) 推荐(0) 编辑
摘要://第二十三模板 18.2列表容器//列表容器list是个标准模板库容器类/*#include <iostream>#include <list>using namespace std;typedef list<int> List;int main(){ List ll; List::iterator p; //list类的迭代器方法iterator,并声明了一个迭代器p,可以将其看作是一个归一化的指针 //也可锦成List::const_iterator p; //const_iterator p表示迭代器p指向的是一个常量,它的值是不可修改的 for(i 阅读全文
posted @ 2012-10-04 20:00 简单--生活 阅读(240) 评论(0) 推荐(0) 编辑
摘要://第二十三模板 18.3关联容器/*顺序容器可使用下标或者迭代器对元素进行顺序或者随机访问,但是不能使用关键值对关键元素进访问关联容器弥补了这个缺点,关联容器可以使用关键字对关键元素进行访问标准C++库提供了四个关联容器,映射 多重映射 集合和多重集合*///1映射//标准映射容器类maps要关联容器的一种/*begin() 返因指向map头部的迭代器clear() 删除所有元素count() 返回指定元素出现的次数empty() 如果map为空由返回trueend() 返回指向map末尾的迭代器equal_range()返回特殊条目的迭代器对erase()... 阅读全文
posted @ 2012-10-04 20:00 简单--生活 阅读(160) 评论(0) 推荐(0) 编辑
摘要://第二十三模板 17静态成员和模板/*#include <iostream>using namespace std;template<class T>class num{public: num():x(0){} T get(){ return y;}private: T x; static T y; //声明了一个静态成员y,它的类型是T,这个静态成员y在下面进行了初始化为0 //注意,于它是模板类的静态成员,因此在初始化之前,要列出模板类所用的模板};template <class T>T num<T>::y=1;int main(){ nu 阅读全文
posted @ 2012-10-04 19:59 简单--生活 阅读(257) 评论(0) 推荐(0) 编辑
摘要://第二十三模板 18标准模板库//1 容器 容器是包含其他对像的对像,标准C++ 库中提供了一系列的容器类//可以分为两种类型,顺序和关联类型,顺序容器可提供对自身元素的顺序或者随机访问,关联容器则过滤掉了一些元素,只按关键值访问有关元素//2 顺序容器//标准C++库提供了三种顺序容器,分别为vector list 和deque//2.1 向量容器/*#include <iostream>#include <vector>#include <string>using namespace std;const int num=2;int main(){ ve 阅读全文
posted @ 2012-10-04 19:59 简单--生活 阅读(225) 评论(0) 推荐(0) 编辑
摘要://第二十三模板 15模和友元//模板类也可以声明为友元,模板类的友元共分三种情况//1 非模板友元类或者友元函数//2 通用模板类或者友元函数//3 特定类型的模板友元类或者友元函数//1非模板的友元类和友元函数//我们可以将任何类或者函数声明为模板类的友元,这样由模板类生成的每个具体类都会正确处理友元类或者友元函数,就好像友元关系已经在具体化的类中声明了一样/*#include <iostream>using namespace std;const int size=10;template<class T>class num{public: num(int Tsiz 阅读全文
posted @ 2012-10-04 19:58 简单--生活 阅读(252) 评论(1) 推荐(1) 编辑
摘要://第二十三模板 16多余的临时对像//未具体化num模板类构造函数/*#include <iostream>using namespace std;const int size=2;class people{public: people(int); people(); ~people(); int GetAge()const{ return age;} void SetAge(int the){ age = the;} people &operator=(const people&r){ cout<<"调用people类的operator=函 阅读全文
posted @ 2012-10-04 19:58 简单--生活 阅读(169) 评论(0) 推荐(0) 编辑
摘要://第二十三模板 11模板参数提供默认值/*#include <iostream>#include <string>using namespace std;//默认参数 class T2=inttemplate<class T1, class T2=int>class People{public: T1 &getx(); T2 &gety(); T1 getx()const{ return x;} T2 gety()const{ return y;} People(const T1&a, const T2&b):x(a),y( 阅读全文
posted @ 2012-10-04 19:57 简单--生活 阅读(475) 评论(0) 推荐(0) 编辑
摘要://第二十三模板 12约束模板//结束模板的大意,即是对模板的数据和方法有要求/*template<class T>T max(T a, T b){ return (a>b)?a:b;}假如比较的类型是两个指向字符串的指针,则比较运算符>比较的是两个地址而不是数值char* max(char *a, char *b){ if(strcmp(a,b) > 0) return a; else return b;}该函数具体化了max函数的两个参数和功能,该函数的两个参数是char*,它的功能是使用strcmp函数比较指针所指向的字符串而不是指针,这个特定的用来替换函数 阅读全文
posted @ 2012-10-04 19:57 简单--生活 阅读(276) 评论(0) 推荐(0) 编辑
摘要://第二十三模板 13模板成员//模板可作为类,结构甚至模板类的成员/*#include <iostream>using namespace std;template<class T1>class One{public: //不知道这里的i是什么意思 //One(T1 t, int i):first(t),second(t){} One(T1 t, int i):first(t),second(i){} template<class T2> T2 get(T2 t2, T1 t1){ cout<<"second.get()返回" 阅读全文
posted @ 2012-10-04 19:57 简单--生活 阅读(146) 评论(0) 推荐(0) 编辑
摘要://第二十三模板 14将模板用作参数//模板除了可以包括类型参数(class T)和非类型参数(int n)之外,还要台将模板作为参数包括进去//tempalte<calss T>//template<template<class T>class T1>//这个T1类型有局限性,它要求我们在使用该模板时传递的参数必须是个模板类//people<human>Jack;//其中的human是用a模板声明的模板类,而people则是用b模板声明的模板类, Jack是用people这个模板类定义的一个对像/*#include <iostream&g 阅读全文
posted @ 2012-10-04 19:57 简单--生活 阅读(374) 评论(0) 推荐(0) 编辑
摘要://第二十三模板 8数组模板/*#include <iostream>using namespace std;template<class T, int n>class people{public: people(); people(const T&t); T&operator[](int i); //注意: //这两行定义的带一个参数的构造数和下标运算符数operator[],它们操作的对像不是下面定义的数组成员a[] //而是people类的对像 void show();private: T a[n];};template<class T, i 阅读全文
posted @ 2012-10-04 19:56 简单--生活 阅读(237) 评论(0) 推荐(0) 编辑
摘要://第二十三模板 9对像数组模板//我们也可以直接使用对像模板来构造对像数组//people<people<int,5>,10>two;//该语句创建了一个包含10个元素对像数组two,每个对像又拥有一个包含5个int元素的数组,因此它可以看作如下二维数组//int two[10][5]//注意,在模板的表示语法中,维的顺序与正常的二维数组的顺序相反//people<people<int,5>,10>one; 可看做是 one[10][5];/*#include <iostream>using namespace std;templa 阅读全文
posted @ 2012-10-04 19:56 简单--生活 阅读(202) 评论(0) 推荐(0) 编辑
摘要://第二十三模板 10具有多个参数的模板/*#include <iostream>#include <string>using namespace std;template<class T1, class T2>class People{public: T1 &getx(); T2 &gety(); T1 getx()const{ return x;} T2 gety()const{ return y;} People(const T1&a, const T2&b):x(a),y(b){ cout<<"构 阅读全文
posted @ 2012-10-04 19:56 简单--生活 阅读(229) 评论(0) 推荐(1) 编辑
摘要://第二十三模板 4普通函数,函数模板与具体化函数模板的优先级//我们定义了个普通函数,然后又定义了一个该函数的模板,接着又重载了这个函数的模板,那么这里就存在一个优先级的问题,即先调用哪里个函数//1 普通函数和函数模板的执行次序/*#include <iostream>using namespace std;template <class T>void show(T a){cout<<"模板函数"<<endl;}void show(int a){cout<<"普通函数"<<end 阅读全文
posted @ 2012-10-04 19:55 简单--生活 阅读(383) 评论(0) 推荐(1) 编辑
摘要://第二十三模板 5函数模板的匹配/*#include <iostream>using namespace std;struct people{ char name[10]; int age;};template <class T>void show(T t[], int n){ cout<<"执行函数模板void show(T t[], int n) "<<endl; for(int i=0; i<n; i++) cout<<t[i]<<' '; cout<<endl 阅读全文
posted @ 2012-10-04 19:55 简单--生活 阅读(108) 评论(0) 推荐(0) 编辑
摘要://第二十三模板 6类模板的定义//类模板的定义与函数模板的定义大到到致相同/*#include <iostream>using namespace std;template<class T>class people{public: people(T x, T y):X(x),Y(y){} T getX(){ return X;} T getY(){ return Y;}private: T X, Y;};int main(){ int a=3, b=4; people<int> Jack(a,b); //注意,由于people是个模板类,因此构造对像时略有 阅读全文
posted @ 2012-10-04 19:55 简单--生活 阅读(155) 评论(0) 推荐(0) 编辑
摘要:// 第二十三模板 7复杂类模板/*#include <iostream>using namespace std;const int size=10;class people{public: people(int i):x(i){}; people():x(0){} int GetAge()const{ return x;} void show()const{cout<<x<<endl;}private: int x;};template <class T>class num{public: num(int Tsize=size); //带一个整 阅读全文
posted @ 2012-10-04 19:55 简单--生活 阅读(434) 评论(0) 推荐(0) 编辑
摘要://第二十三模板 3具体化函数模板//具体化函数模板, 顾名思义, 即具体化了函数参数和功能的模板//1 函数模板不能重载/*#include <iostream>using namespace std;template <class T>void Swap(T &a, T &b);struct people{ char name[10]; int age;};void show(people &p);int main(){ int i=10,j=20; cout<<"初始值i="<<i<< 阅读全文
posted @ 2012-10-04 19:54 简单--生活 阅读(327) 评论(0) 推荐(0) 编辑
摘要://第二十三模板 1什么是模板/*//未使用模板程序#include <iostream>using namespace std;void swap(int &rx, int &ry){ int temp = rx; rx = ry; ry = temp;}void swap(float &rx, float &ry){ float temp = rx; rx = ry; ry = temp;}void swap(double &rx, double &ry){ double temp = rx; rx = ry; ry = temp 阅读全文
posted @ 2012-10-04 13:36 简单--生活 阅读(149) 评论(0) 推荐(0) 编辑
摘要://第二十三模板 2重载模板/*#include <iostream>using namespace std;const int num=10;template<class T>void Swap(T&rx, T&ry){ cout<<"执行函数 void Swap(T &rx, T &ry)"<<endl; T temp = rx; ry = rx; rx = temp;}template<class T>void Tswap(T ar1[], T ar2[], int num){ 阅读全文
posted @ 2012-10-04 13:36 简单--生活 阅读(121) 评论(0) 推荐(0) 编辑
摘要://第二十二章 6未命名的命名空间/*#include <iostream>using namespace std;namespace { int x=2;}namespace { int y=3;}int main(){ cout<<"x:"<<x<<" y:"<<y<<endl; //输出的结果就是未命名空间的x和y的值,其实我们也可以把它们看帮是全局的变量 return 0;}*/// 1 未命名命名空间与全局变量的区别// 2 未命名命名空间与static的区别// 3 未命 阅读全文
posted @ 2012-10-01 23:51 简单--生活 阅读(470) 评论(0) 推荐(0) 编辑
摘要://第二十二章 4使用关键字using//不地using namespace只有在它声明的作用域中有效,假如超出这个作用域,那么就要重新声明才能够直接使用该空间中的成员/*#include <iostream>using namespace std;namespace num{ int x=10; int y=20;}int main(){ { using namespace num; cout<<"x:"<<x<<" y:"<<y<<endl; } //cout<<&q 阅读全文
posted @ 2012-10-01 23:50 简单--生活 阅读(170) 评论(0) 推荐(0) 编辑
摘要://第二十二章 5为你的命名空间取个别名/*#include <iostream>using namespace std;namespace people_compay_boss{ int x=9;}namespace pcd = people_compay_boss;int main(){ cout<<pcd::x<<endl; cout<<people_compay_boss::x<<endl; return 0;}*/ 阅读全文
posted @ 2012-10-01 23:50 简单--生活 阅读(187) 评论(0) 推荐(0) 编辑
摘要://第二十二章 1什么是命名空间//命名宽间主要解决命名冲突的问题,即重名问题/*#include <iostream>using namespace std;int x=1; namespace people{ char name[10] = "Jack";};int main(){ int x=3; cout<<"x:"<<x<<endl; //这个是局部的x变量 cout<<"::x:"<<::x<<endl; //全局的x变量, 前面添加作用域 阅读全文
posted @ 2012-10-01 23:49 简单--生活 阅读(186) 评论(0) 推荐(0) 编辑
摘要://第二十二章 2创建命名空间//1 扩充命名空间的内容// 同一个命名空间可以在程序中出现多次,也就是说我们可以多次重复创建同一个命名空间//2 尽量在命名空间之外定义函数/*#include <iostream>using namespace std;namespace func{ void swap(int &rx, int &ry); void compare(int x, int y);}int main(){ int x=5, y=6; func::swap(x,y); func::compare(x,y); return 0;}void func::s 阅读全文
posted @ 2012-10-01 23:49 简单--生活 阅读(182) 评论(0) 推荐(0) 编辑
摘要://第二十二章 3使用命名空间/*#include <iostream>using namespace std;namespace func{ const int cx=20; const int cy=50; class num{ public: num(); ~num(); void size(int a, int b); void swap(int rx, int ry); void compare(int ax, int ay); int returnX(); int returnY(); static int z; private: int x; int y;... 阅读全文
posted @ 2012-10-01 23:49 简单--生活 阅读(165) 评论(0) 推荐(0) 编辑
摘要://第二十一章流 15sstream字符串输入输出流类/*#include <iostream>#include <sstream>#include <string>using namespace std;int main(){ ostringstream out; //ostringstream 类从ostream类派生而来,因此ostringstream类对像有cout对像的特征 char *str = "hello world"; float num=314.57f; out.precision(2); out<<fix 阅读全文
posted @ 2012-10-01 14:03 简单--生活 阅读(169) 评论(0) 推荐(0) 编辑
摘要://第二十一章流 11指定读取文件中的数据seekg()//假如我们不想全部读入文件中的数据,而是只读取其中的某项数据,那么fstream类的seekg()成员函数可以为我们达到目的/*#include <iostream>#include <fstream>using namespace std;int main(){ ofstream fout("people.txt"); if(!fout){ cout<<"创建文件失败"; } fout<<"1234567890asfdsfasfasfas 阅读全文
posted @ 2012-10-01 14:02 简单--生活 阅读(1693) 评论(0) 推荐(0) 编辑
摘要://第二十一章流 12输出数据到文件指定位置处seekp()//想要在文件指定位置处输出数据,那么fstream类的seekp()成员函数可以为我们达到目的/*#include <iostream>#include <fstream>using namespace std;int main(){ ofstream fout("people.txt"); if(!fout){ cout<<"创建文件失败"<<endl; } fout<<"ABCDEFGLIJKLMIOPQ"; 阅读全文
posted @ 2012-10-01 14:02 简单--生活 阅读(322) 评论(0) 推荐(0) 编辑
摘要://第二十一章流 13seekp()和seekg()函数的结合使用/*#include <iostream>#include <fstream>#include <iomanip>using namespace std;const int num = 10;struct people{ char name[num]; int age; float pay;};const char*file = "people13.txt";void deleteline(){ while(cin.get() !='\n') continu 阅读全文
posted @ 2012-10-01 14:02 简单--生活 阅读(797) 评论(0) 推荐(0) 编辑
摘要://第二十一章流 14临时文件/*#include <cstdio>#include <iostream>using namespace std;int main(){ cout<<"tmpnam()函数的最多调用次数:"<<TMP_MAX<<"\n 临时文件名的字符数目:"<<L_tmpnam<<"字符"<<endl; char pszName[L_tmpnam]={'\0'}; cout<<"下面是 阅读全文
posted @ 2012-10-01 14:02 简单--生活 阅读(152) 评论(0) 推荐(0) 编辑
摘要:// 第二十一章流 8打开多个文件// 1 同时打开多个文件// 2 依次打开多个文件,也就是打开并处理完一个文件后再打开一个文件/*#include <iostream>using namespace std;int main(){ return 0;}*/// 第二十一章流 9 命令行处理文件//int main(int argc, char** argv) //是指向char的指针的指针//int main(int argc, char* argv[]) //字符数组的指针// argc是指命令输入参数的个数/*#include <iostream>using n 阅读全文
posted @ 2012-10-01 14:01 简单--生活 阅读(218) 评论(0) 推荐(0) 编辑
摘要://第二十一章流 10使用命令行处理文件例程/*#include <iostream>#include <fstream>using namespace std;int main(int argc, char*argv[]){ if(argc==1) { cout<<"访程序"<<argv[0]<<"未操作文件名"<<endl; exit(EXIT_FAILURE); //exit()函数就是退出程序,传入的参数是程序退出时的状态码,0表示正常退出,其他表示非正常退出 } ifstr 阅读全文
posted @ 2012-10-01 14:01 简单--生活 阅读(155) 评论(0) 推荐(0) 编辑
摘要:// 第二十一章流 5 多种打开文件的方式 文件存在,文件不存在/*ios::in 打开文件进行读操作,即读取文件中的数据ios::out 打开文件进行写操作,即输出数据到文件中ios::ate 打开文件时针指向文件末尾,但是你可以在文件中的任何地方写入数据ios::app 打开文件不会清空数据,文件指针始终在文件尾,因此只能文件尾写数据ios::trunc 默认,若打开文件已经存在,则清空文件内容ios::nocreate 若打开文件不存在则不建立,返回打开失败信息ios::noreplace 打开文件时不能覆盖,若文件存在则返回打开失败信息ios::binary 打开文件为二进制文件,否则 阅读全文
posted @ 2012-10-01 14:00 简单--生活 阅读(425) 评论(0) 推荐(0) 编辑
摘要://第二十一章流 6检查文件是否打开// // 使用布尔函数eof() bad() fail()他good()够检查// eof()/bad()/fail()返回假时或者 good()返回真时文件打开成功/*#include <iostream>#include <fstream>using namespace std;int main(){ ofstream fout("a.txt"); fout<<"输出到文件"; fout.close(); ifstream fin("a.txt"); if( 阅读全文
posted @ 2012-10-01 14:00 简单--生活 阅读(234) 评论(0) 推荐(0) 编辑
摘要:// 第二十一章流 7二进制文件和文本文件//1 以文本形式输出到文件/*#include <iostream>#include <fstream>using namespace std;//定义一个结构体peopleconst int num=20;struct people{ char name[num]; double weight; int tall; int age; char sex;};int main(){ people pe={"李能",78.5,181,25,'f'}; ofstream fout("pe 阅读全文
posted @ 2012-10-01 14:00 简单--生活 阅读(226) 评论(0) 推荐(0) 编辑
摘要:// 第二十一章流 1流的操作// 1.1 缓冲// 1.2 流和缓冲区// 1.3 标准输入输出对像// 1.4 重定向 重定向的意思是可以重新定向输出的设备// 1.5 对像代表流// 2.0 用count输出/*#include <iostream>using namespace std;int main(){ char *ch = "hello world"; //用强制转换方式将char*指针ch转换为void*之后,输出的就是字符串ch的地址,也就是第一个字符的位置 cout<<(void*)ch<<endl; //输出的&a 阅读全文
posted @ 2012-10-01 13:59 简单--生活 阅读(344) 评论(0) 推荐(0) 编辑
摘要://第二十一章流 3用cin输入// 1 字符串的输入/*#include <iostream>using namespace std;int main(){ int x; cin>>hex>>x; cout<<x; system("pause"); return 0;}*/// 2 字符串的输入问题/*#include <iostream>using namespace std;int main(){ char word[12]; cin>>word; cout<<word<< 阅读全文
posted @ 2012-10-01 13:59 简单--生活 阅读(358) 评论(0) 推荐(0) 编辑
摘要:// 第二十一章流 4文件的输入和输出// 1输出数据到文件 //(1)包含fstream头文件 //(2)建立ofstream对像 如: ofstream ocout //(3)将对像与文件关联 ocout.open('123.txt'); //(4)该对像可看作cout对像,因此我们使用该对像将数据输出到文件中,而不是屏幕中 ocout<<"abc"; //(5)关闭与文件的连接 count.close();/*#include <iostream>#include <fstream>using namespace s 阅读全文
posted @ 2012-10-01 13:59 简单--生活 阅读(238) 评论(0) 推荐(0) 编辑

简单--生活(CSDN)
点击右上角即可分享
微信分享提示