
编程技巧及细节
zxj346158052
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
c++ string 类的对象的输出问题
<br />这几天一直在想没有用过string类的指针,那如果要输出string对象从第i个字符之后的所有字符该怎么办?当然,可以用string类的substr函数来进行输出。今天发现可以这样做:<br />string str = "mississippi";<br />cout<<&st[3];<br />这样就可以输出:sissippi。这样就可以地实现字符串的任意后缀字符串的输出了。原创 2010-12-05 09:48:00 · 940 阅读 · 0 评论 -
c语言的指针数组和数组指针
<br />这是一个有关指针数组和数组指针的代码:<br /><br />//********BEGIN<br />#include <stdio.h><br /><br />int main()<br />{<br />char aa[3][2]={{'f','i'},{'s','e'},{'t','h'}};<br />char *ap[3];<br />char (*pa)[2];<br /><br />int i;<br />for ( i=0;i<3;i++)<br />{ap[i]=aa[i];原创 2010-12-05 08:32:00 · 411 阅读 · 0 评论 -
static_cast
static_cast 用法:static_cast < type-id > ( expression ) 该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法: ①用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。 进行上行转换(把派生类的指针或引用转换成基类表示)是安全的; 进行下行转换(把基类指针或引用转换成派生类表示)时,由于没有动态类型检查,所以是不安全的。 ②用于基本数据类型之间的转换,如把in转载 2010-12-09 11:00:00 · 425 阅读 · 0 评论 -
两个字符串模式匹配的算法
<br /> 今天看了一下查找子串在某个文本中出现的位置的两个算法。一个是Karp-Rabin算法,另外一个是Knuth-Morris-Pratt算法。<br /> 先来说明一下这个Karp-Rabin算法。该算法提出了一个简单的子串位置查询的方法,区别于brute force方法的O(m*n)的时间复杂度,该算法在最坏情况下的时间复杂度是O(m*n),其平均复杂度为O(m+n)。其中m为子串的长度。n为文本的长度。该算法使用hash函数来检查两个序列。从而查找出子串在文本中出现的位置。原创 2010-12-13 20:45:00 · 791 阅读 · 0 评论 -
使用字符串作为函数模板的实参
<br /> 有时,把字符串传递给函数模板的引用参数会导致出人意料的运行结果,如:<br /> template <typename T><br />inline T const& max(T const& a,T const& b)<br />{<br /> return a < b ? a : b;<br />}<br /> <br />max("apple","peach"); // ok:相同类型的实参<br />max("apple","banana"); //error:不同类原创 2010-12-20 17:05:00 · 1565 阅读 · 0 评论 -
关于函数指针数组的定义
关于函数指针数组的定义方法,有两种:一种是标准的方法;一种是蒙骗法。第一种,标准方法:分析:函数指针数组是一个其元素是函数指针的数组。那么也就是说,此数据结构是是一个数组,且其元素是一个指向函数入口地址的指针。 根据分析:首先说明是一个数组:数组名[];其次,要说明其元素的数据类型指针:*数组名[];再次,要明确这每一个数组元素是指向函数入口地址的指针:函数返回值类型 (*数组名[])().请注意,这里为什么要把“*数组名[]”用括号扩起来呢?因为圆括号和数组说明符的优先级是等同的,如果不用圆括号把指针数组转载 2010-11-25 16:36:00 · 400 阅读 · 0 评论 -
c/c++读写文件函数
c/c++读写函数用法原创 2011-05-31 20:43:00 · 758 阅读 · 1 评论