摘要: C++ 11标准新增加了“可变参数模板”(variadic template)。 可变参数模板中,模板的typename个数是可变长度的。下面给个例子,已在g++ 4.6.1上编译通过,并成功运行。/* * C++11标准 可变参数模板(variadic template) 样例 * * * Copyright © 叶剑飞 2012 * * * 编译命令: * g++ myPrintf.cpp -o myPrintf -std=c++0x -Wall * */#include <iostream>#include <cstdlib>#i... 阅读全文
posted @ 2012-11-16 17:58 叶剑飞Victor 阅读(2943) 评论(0) 推荐(0) 编辑
摘要: C++ 11标准新增加了Lambda表达式、for_each语法,并改变了auto关键字的意义。 Lambda表达式是一个匿名函数,整个函数体直接内嵌在普通代码中。 for_each是C++ 11标准的STL库中新增加的函数模板,声明于<algorithm>头文件。 auto关键字原先C语言中的意义是自动类型。现在的C++ 11标准新规定把auto关键字的意思改成了任意类型,但并不是弱类型,仍然是强类型。auto关键字声明的变量必须初始化,在初始化时候,类型就已经决定了,就是初始化的表达式的返回值类型。例如代码 auto n = 1; ,那么n的类型就被规定成int型了。 排序代码 阅读全文
posted @ 2012-10-19 17:09 叶剑飞Victor 阅读(9532) 评论(0) 推荐(1) 编辑
摘要: C++ 11标准新增加了Lambda表达式,以后小函数可以直接内嵌Lambda表达式搞定了。例如排序,我们以前要这么写:#include <iostream>#include <cstdlib>#include <algorithm>bool compare( const int & a, const int & b ){ return a < b;}using namespace std;int main ( ){ int a[10] = {5,1,2,3,6,9,8,2,3,6}; sort( a, a+9, compare ); 阅读全文
posted @ 2012-10-18 21:36 叶剑飞Victor 阅读(562) 评论(0) 推荐(0) 编辑
摘要: 先上个预览再秀秀代码<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="zh" xml:lang="zh"><head><meta http-equiv="co 阅读全文
posted @ 2012-10-18 20:01 叶剑飞Victor 阅读(506) 评论(0) 推荐(0) 编辑
摘要: 我们最经常遇到的验证,就是电子邮件地址验证。网站上常见。各种网页脚本也都常用“正则表达式”(regular expression)对我们输入的电子邮件地址进行验证,判断是否合法。有的还能分解出用户名和域名。现在用PHP语言实现一下电子邮件地址验证程序,用的是PHP正则表达式库。 源代码如下:<?php header ( "Content-Type: text/html; charset=UTF-8" ); $reply = ""; if ( isset($_POST["email_address"]) ) { $email_ad 阅读全文
posted @ 2012-10-18 15:04 叶剑飞Victor 阅读(57540) 评论(0) 推荐(1) 编辑
摘要: 我们最经常遇到的验证,就是电子邮件地址验证。网站上常见。各种网页脚本也都常用“正则表达式”(regular expression)对我们输入的电子邮件地址进行验证,判断是否合法。有的还能分解出用户名和域名。现在用JavaScript语言实现一下电子邮件地址验证程序,用的是JavaScript语言的正则表达式库。 源代码如下,该网页已在IE、Firefox、Chrome上验证通过:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1 阅读全文
posted @ 2012-10-18 14:09 叶剑飞Victor 阅读(11860) 评论(0) 推荐(0) 编辑
摘要: 湖南省第八届大学生计算机程序设计竞赛C题 Updating a Dictionary(题目链接)。Problem C Updating a DictionaryIn this problem, a dictionary is collection of key-value pairs, where keys are lower-case letters, and values are non-negative integers. Given an old dictionary and a new dictionary, find out what were changed.Each di... 阅读全文
posted @ 2012-10-18 11:36 叶剑飞Victor 阅读(684) 评论(0) 推荐(0) 编辑
摘要: 我们最经常遇到的验证,就是电子邮件地址验证。网站上常见。各种网页脚本也都常用“正则表达式”(regular expression)对我们输入的电子邮件地址进行验证,判断是否合法。有的还能分解出用户名和域名。现在用C++语言实现一下电子邮件地址验证程序,用的是boost正则表达式库。 源代码如下,该代码已在g++ 4.6上验证通过。/* * regex.cpp - 用正则表达式验证电子邮件地址 * * boost正则表达式 * * * Copyright 叶剑飞 2012 * 编译命令: * g++ regex.cpp -o reg... 阅读全文
posted @ 2012-10-17 18:03 叶剑飞Victor 阅读(879) 评论(0) 推荐(0) 编辑
摘要: 湖南省第八届大学生计算机程序设计竞赛D题 平方根大搜索(题目链接)。题目D平方根大搜索 在二进制中,2的算术平方根,即sqrt(2),是一个无限小数1.0110101000001001111... 给定一个整数n和一个01串S,你的任务是在sqrt(n)的小数部分(即小数点之后的部分)中找出到S第一次出现的位置,如果sqrt(n)是整数,小鼠部分看作是无限个0组成的序列。输入格式 输入第一行为数据组数T(T≤20)。以下每行为一组数据,仅包含一个整数n(2≤n≤1,000,000)和一个长度不超过20的非空01串S。输出格式 对于每组数据,输出S的第一次出现中,第一个字符的位置。小... 阅读全文
posted @ 2012-10-16 12:50 叶剑飞Victor 阅读(928) 评论(0) 推荐(0) 编辑
摘要: 我们最经常遇到的验证,就是电子邮件地址验证。网站上常见。各种网页脚本也都常用“正则表达式”(regular expression)对我们输入的电子邮件地址进行验证,判断是否合法。有的还能分解出用户名和域名。现在用C语言实现一下电子邮件地址验证程序,用的是POSIX正则表达式。由于用的是POSIX正则表达式,所以只能用gcc编译。 另外,据测试,只有Linux原版的gcc才能编译通过。如果用Windows中的MinGW或Cygwin的gcc编译不通过,错误是找不到头文件。 C语言源代码如下:/* * regex.c - 用正则表达式验证电子邮件地址 * * POSIX正... 阅读全文
posted @ 2012-10-07 19:06 叶剑飞Victor 阅读(605) 评论(0) 推荐(0) 编辑