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 约 ...
随机推荐
- 多个音频audio2
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- LOJ#6038. 「雅礼集训 2017 Day5」远行(LCT)
题面 传送门 题解 要不是因为数组版的\(LCT\)跑得实在太慢我至于去学指针版的么--而且指针版的完全看不懂啊-- 首先有两个结论 1.与一个点距离最大的点为任意一条直径的两个端点之一 2.两棵树之 ...
- jquery源码解析:attr,prop,attrHooks,propHooks详解
我们先来看一下jQuery中有多少个方法是用来操作元素属性的. 首先,看一下实例方法: 然后,看下静态方法(工具方法): 静态方法是内部使用的,我们外面使用的很少,实例方法才是对外的. 接下来,我们来 ...
- localhost, 127.0.0.1, 0.0.0.0
总结: localhost:是一个域名.域名可以认为是某个ip的别称,便于记忆.通常localhost对应的ip是127.0.0.1,不过这个也可以设置,参见知乎回答 127.0.0.1:是一个回环地 ...
- CentOS7 安装 Adobe Flash 看网络视频
登录 Adobe 网站,找到 Adobe Flash Player 下载页,进入后网页自动识别 Linux 环境,手动选择版本,选择 YUM 方式,自动下载一个 rpm 文件 定位到下载目录,通常默认 ...
- 二分难题 && deque
141. Sqrt(x) https://www.lintcode.com/problem/sqrtx/description?_from=ladder&&fromId=4 publi ...
- 二、利用继承修改OPENERP 的一个模块
问题记录1: No modules named 'xx' 原因: __init__.py 文件命名错误! 问题记录2: XMLSyntaxError: Attribute name redefined ...
- Mac下使用Eclipse的Show in Terminal提示command not found: mvn
在Mac下一般配置了Maven的环境变了一般都不会提示,但是如果使用zsh的扩展之后,系统默认的环境变量配置文件会发生变化,尤其使用Eclipse打开终端时,默认不会去读取用户目录下的~/.bashr ...
- win7 免安装MariaDB
1. 官网下载MariaDB的windows版本 地址:https://downloads.mariadb.org/mariadb/10.0.17/ 目前最新版本是10.0.17 2. 下载完成后 ...
- Spring由于web配置导致的spring配置文件找不到的问题的解决方案
在把某项技术整合到Spring中的时候,我们时常会发现报如下错误: org.springframework.beans.factory.BeanCreationException: Error cre ...