C++ 语法积累20161015
1、break 作用:用于终止当前循环(跳出循环体)。
遇到最多的应该是在双层循环体中的使用:
(1)在内循环体中,遇到break,则直接跳出内循环体,再次执行外循环体。
(2) 在外循环体中,break 与 内循环体并行,遇到并跳出外循环体。
注:break 用于switch 语句中,则直接跳出switch
break 不能直接用于if中,除非if属于循环的一个句子,但此时他的作用是循环,而不是if
参考:
http://blog.csdn.net/wfz0704112/article/details/8550230
http://blog.csdn.net/u010738823/article/details/48896077
2、ctime 头文件
“时间”和“日期”的概念
Coordinated Universal Time(UTC):
协调世界时,又称为世界标准时间,也就是大家所熟知的格林威治标准时间(Greenwich Mean Time,GMT).比如,中国内地的时间与UTC的时差为+8,也就是UTC+8.美国是UTC-5
Calendar Time:
日历时间:是用“从一个标准时间点到此时的时间经过的秒数”来表示的时间.这个标准时间点对不同的编译器来说会有所不同,但对一个编译系统来说,这个标准时间点是不变的,该编译系统中的时间对应的日历时间都通过该标准时间点来衡量,所以可以说日历时间是“相对时间”,但是无论你在哪一个时区,在同一时刻对同一个标准时间点来说,日历时间都是一样的.epoch:时间点时间点在标准C/C++中是一个整数,它用此时的时间和标准时间点相差的秒数(即日历时间)来表示
clock tick:
时钟计时单元(而不把它叫做时钟滴答次数),一个时钟计时单元的时间长短是由 CPU 控制的.一个 clock tick 不是CPU 的一个时钟周期,而是C/C++的一个基本计时单位.
重要的宏
CLOCKS_PER_SEC
说明:每秒钟的滴答数
定义:
#define CLOCKS_PER_SEC ((clock_t) 000)
用途:它用来表示一秒钟会有多少个时钟计时单元
clock_t
说明:滴答计数类型
定义:
 #ifndef _CLOCK_T_DEFINED
    typedef long clock_t;
 #define _CLOCK_T_DEFINED
 #endif
注意:其中clock_t是用来保存时间的数据类型
time_t
说明:日历时间的秒计数
定义:
#ifndef __TIME_T
#define __TIME_T  //避免重复定义 time_t
    typedef long time_t; //时间值time_t 为长整型的别名
#endif
注意:对time_t数据类型的值来说,它所表示的时间不能晚于2038年 月 8日 9时 4分07秒.
重要数据类型
struct tm
说明:年月日等得细分时间数据结构
struct tm{
    int tm_sec;      //Seconds.     [0-60] (  leap second)
    int tm_min;       //Minutes.     [0-59]
    int tm_hour;      //Hours.       [0-23]
    int tm_mday;      //Day.         [ -3 ]
    int tm_mon;       //Month.       [0-  ]
    int tm_year;      //Year -  900.
    int tm_wday;      //Day of week. [0-6]
    int tm_yday;      //Days in year.[0-365]
    int tm_isdst;     //DST.         [- /0/ ]
#ifdef __USE_BSDlong int tm_gmtoff;    //Seconds east of UTC.
    __const char *tm_zone;         //Timezone abbreviation.(时区缩写)
#elselong int __tm_gmtoff;         //Seconds east of UTC.
    __const char *__tm_zone;       //Timezone abbreviation.
#endif
};
函数
clock 函数
原型:clock_t clock( void );
作用:返回本程序自启动来,流逝的时钟计时单元.
difftime 函数
原型:double difftime( time_t timer ,time_t timer0 );
作用:返回两个日历时间之差timer -timer0;
time 函数
原型:time_t time( time_t *timer );
作用:获取机子的时间
注意:如果,timer不为空,则同时将返回值赋给timer指向的变量.
mktime 函数
原型:time_t mktime(struct tm *timeptr );
作用:将由年月日时分秒等构成的细分时间转换为流逝秒数构成的日历时间.
localtime 函数
原型:struct tm *localtime(const time_t *timer);
作用:将日历时间转换为本地细分时间
gmtime函数
原型:struct tm *gmtime( const time_t *timer);
作用:将日历时间转换为UTC(世界协调时间)的细分时间
注意:localtime与gmtime,前者比后者多8个小时
asctime函数
原型:char *asctime( const struct tm *timeptr );
作用:将细分时间转换为简写字符串
ctime函数
原型:char *ctime( const time_t *timer );
作用:将日历时间转换为简写字符串
strftime函数
原型:size_t strftime(char *strDest, size_t maxsize, const char *format, const struct tm *timeptr );
作用:将细分时间按format的格式要求格式化到strDest指向的缓冲区
函数strftime()的操作有些类似于sprintf():识别以百分号(%)开始的格式命令集合,格式化输出结果放在一个字符串中.格式化命令说明串strDest中各种日期和时间信息的确切表示方法.格式串中的其他字符原样放进串中.格式命令列在下面,它们是区分大小写的
%a 星期几的简写
%A 星期几的全称
%b 月分的简写
%B 月份的全称
%c 标准的日期的时间串
%C 年份的后两位数字
%d 十进制表示的每月的第几天
%D 月/天/年
%e 在两字符域中,十进制表示的每月的第几天
%F 年-月-日
%g 年份的后两位数字,使用基于周的年
%G 年分,使用基于周的年
%h 简写的月份名
%H 24小时制的小时
%I 2小时制的小时
%j 十进制表示的每年的第几天
%m 十进制表示的月份
%M 十时制表示的分钟数
%n 新行符
%p 本地的AM或PM的等价显示
%r 2小时的时间
%R 显示小时和分钟:hh:mm %S 十进制的秒数
%t 水平制表符 %T 显示时分秒:hh:mm:ss
%u 每周的第几天,星期一为第一天 (值从0到6,星期一为0)
%U 第年的第几周,把星期日做为第一天(值从0到53)
%V 每年的第几周,使用基于周的年
%w 十进制表示的星期几(值从0到6,星期天为0)
%W 每年的第几周,把星期一做为第一天(值从0到53)
%x 标准的日期串
%X 标准的时间串
%y 不带世纪的十进制年份(值从0到99)
%Y 带世纪部分的十制年份
%z,%Z 时区名称,如果不能得到时区名称则返回空字符.%% 百分号
关系图

应用
#include <iostream>
#include <ctime>
using namespace std;
//定义宏来计算算法所消耗的时间(毫秒级)
// "\" 符号:继续符。表示本行与下一行连接起来
#define BEGIN_RECODE \
{ \
clock_t __temp_begin_time__ ; \
__temp_begin_time = clock(); \
#define END_RECODE(dtime) \
dtime = float(clock() - __temp_begin_time__)/CLOCKS_PER_SEC;\
}
int main()
{
float tim;
int i; for (i = 0; i < 100000; i++)
{
a[i] = int(rand() % 100000);
} cout << "10W个数的希尔排序:" << endl; BEGIN_RECORD shellSort2(a, sizeof(a)/sizeof(int)); END_RECORD(tim) cout << "希尔增量序列运行时间:" << tim << "s" << endl; for (i = 0; i < 100000; i++)
{
a[i] = int(rand() % 100000);
}
BEGIN_RECORD shellSort(a, sizeof(a)/sizeof(int)); END_RECORD(tim) cout << "Hibbard增量序列运行时间:" << tim << "s" << endl; cin.get();
return 0;
}
参考
http://www.cnblogs.com/dongzhuangdian/p/5468608.html
http://www.cnblogs.com/kzloser/archive/2012/07/17/2594773.html
http://www.cnblogs.com/leoin2012/p/3910889.html
C++ 语法积累20161015的更多相关文章
- C#编程语法积累(二)
		
9.Lambda表达式 [1]Lambda表达式缩写推演,如下图: [2]Lambda语句:=>右边有一个语句块(大括号"{}"):Lambda表达式:=>右边只有一个 ...
 - C#编程的语法积累(一)
		
1.自动属性 之前的实现方式: private int id; public int Id { set {id = value;} get {return id;} } 现在可通过自动属性实现: pu ...
 - mysql 语法积累
		
1.把一个表中的某一列赋值到另一个表中的某一列 update sfa_token,sfa_member set sfa_token.mainid = sfa_member.mainid where s ...
 - smali语法积累记录
		
1.constructor 我们知道运行一个类的时候会先调用static方法中的内容,比如: static { System.loadLibrary("qihooTest"); } ...
 - 从0到1,教你实现基于Ruby的watir-webdriver自动化测试
		
一.为什么选择Ruby []完全开源. []多平台:Ruby可以运行在Linux, UNIX, Windows, MS-DOS, BeOS, OS/.. []多线程:线程就是指在一个程序中处理若干控制 ...
 - GIS初学者
		
学习编程一直以来没有什么好的思路,感觉就是学了忘,忘了再重复,效率特别低下.大概是从大三第一学期才有意识的转向c#的学习,来熟悉VS2010平台,在这之前我都不知道自己是怎么学习的. 大一第二学期开的 ...
 - # Python 3 & 爬虫一些记录
		
目录 Python 3 & 爬虫一些记录 交互模式和命令行模式 函数积累 语法积累 列表和元组 输入 交互模式下输入多行 爬虫 HTTP报文请求头User-Agent信息 解析库pyquery ...
 - JAVA知识积累 JSP第一篇【JSP介绍、工作原理、生命周期、语法、指令、行为】
		
什么是JSP JSP全名为Java Server Pages,java服务器页面.JSP是一种基于文本的程序,其特点就是HTML和Java代码共同存在! 为什么需要JSP JSP是为了简化Servle ...
 - sql 列设置默认值,语法查询知识点积累
		
一.修改字段默认值 alter table 表名 drop constraint 约束名字 ------说明:删除表的字段的原有约束 alter table 表名 add constraint 约 ...
 
随机推荐
- Linux下MySQL数据库的备份与还原
			
昨天对公司数据库进行备份.用了以下的方法一. 导出1.导出数据和表结构: mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql 如果要导出数据库全部: mysqldump - ...
 - PHP设计超级好用的文件上传处理类一 (37)
			
<?php class FileUpload { private $filepath; //指定上传文件保存的路径 private $allowtype=array('gif', 'jpg', ...
 - 关于一些blog优化
			
有很多的好看的$java\ script$ 可以大大的增加$blog$的好看度. 这里,本宝宝就列举几个 upd:不定期更新 1.有木有觉得背景的小姐姐和雪花特效极其的配啊啊啊!!! 页面定制CSS插 ...
 - 洛谷P5280 [ZJOI2019]线段树(线段树)
			
题面 传送门 题解 考场上就这么一道会做的其它连暴力都没打--活该爆炸-- 首先我们得看出问题的本质:有\(m\)个操作,总共\(2^m\)种情况分别对应每个操作是否执行,求这\(2^m\)棵线段树上 ...
 - python基础目录
			
一.博客链接 1.基础操作 python基础,变量,if语句 while循环/格式化输出/ 逻辑运算/ 编码 /单位转换 列表的操作,元组,range; enumerate dict字典;dict的操 ...
 - C++中重载、覆盖和隐藏
			
一,多态性 1,(1)声明了基类的指针,该指针指向基类,该指针永远调用自己的成员函数,不管函数是否为虚函数. (2)声明了派生类的指针,该指针指向该派生类,该指针永远调用自己的成员函数,不管函数是否为 ...
 - AngularJS入门讲解4:多视图,事件绑定,$resource服务讲解
			
上一课,大家知道,手机详细模板我们没有写出来,使用的是一个占位模板. 这一课,我们先实现手机详细信息视图,这个视图会在用户点击手机列表中的一部手机时被显示出来. 为了实现手机详细信息视图,我们将会使用 ...
 - iOS中文本属性Attributes
			
NSFontAttributeName //设置字体大小 NSParagraphStyleAttributeName //设置段落格式 NSForegroundColorAttributeName / ...
 - linux中创建一个回收站
			
1. mkdir /tmp/trash_tmp 建立一个回收站目录 2. vi /bin/trash 编辑一个文件 mv $@ /tmp/trash_tmp :wq 保存退出 3. ...
 - Java_锁Synchronized
			
锁(synchronized):既然线程之间是并发执行,就必然会有资源冲突的时候,如果不加以限制,很可能会出现死锁现象,这时就需要锁来对线程获取资源的限制程序中,可以给类,方法,代码块加锁.1.方法锁 ...