C++ 语法积累20161015
2018-06-17 23:40:16来源:未知 阅读 ()
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
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- C++ 转换函数搭配友元函数 2020-06-10
- C++ 自动转换和强制类型转换(用户自定义类类型) 2020-06-10
- C++ rand函数 2020-06-10
- C++ 友元函数 2020-06-10
- C++ 运算符重载 2020-06-10
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash