
C++
文章平均质量分 61
iloveyin
这个作者很懒,什么都没留下…
展开
-
数据结构:TRIE树
Trie树就是字符树,其核心思想就是空间换时间。举个简单的例子。给你100000个长度不超过10的单词。对于每一个单词,我们要判断他出没出现过,如果出现了,第一次出现第几个位置。这题当然可以用hash来,但是我要介绍的是trie树。在某些方面它的用途更大。比如说对于某一个单词,我要询问它的前缀是否出现过。这样hash就不好搞了,而用trie还是很简单。现在回到例子中转载 2012-05-04 21:32:31 · 819 阅读 · 0 评论 -
C++中的空类,默认产生哪些类成员函数?
class Empty{public: Empty(); // 缺省构造函数 Empty( const Empty& ); // 拷贝构造函数 ~Empty(); // 析构函数 Empty& operator=( const Empty& )原创 2012-10-23 17:44:16 · 1023 阅读 · 0 评论 -
定义一个宏获取结构体中变量相对结构体开始的偏移量
#include using namespace std;struct test{ int a; char b; int c; char d;};#define find(type, var) (unsigned int)(&(((type *)(0))->var))int main(){ int a = find(test, a); //0 int b = fin原创 2012-10-22 14:26:11 · 1367 阅读 · 0 评论 -
Effective C++总结
条款1:View C++ as a federation of languages。视C++为一个语言联邦。分为四个部分:C、Object-Oriented C++(Class)、Template C++、STL条款2:Prefer consts, enums, inlines to #defines。尽量以const, enum, inline替代#define。记住原创 2012-10-30 17:04:38 · 1409 阅读 · 0 评论 -
C++运算符优先级
优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右 ()圆括号(表达式)/函数名(形参表) .原创 2012-09-21 21:25:07 · 721 阅读 · 0 评论 -
浅析类的const成员函数,类的const对象
1.const数据成员:跟const常量一样,只是一个在类里,一个在类外而已,都必须初始化。2.const成员函数:即普通成员函数后再加const。它可以读取数据成员的值,但不能修改它们。若要修改时,数据成员前必须加mutable。以指定其可被任意更改。mutable是ANSI C++考虑到实际编程时,可能一定要修改const对象中的某个数据成员而设的。3.普通对象:可以调用任意成转载 2012-09-21 20:45:25 · 663 阅读 · 0 评论 -
模板函数和模板类
定义3个参数,第3个参数用于表示返回值类型template typename T1,typename T2,typename T3>inline T3 const& max (T1 const& a, T2 const& b){ // if a < b then use b else use a return a < b ? b : a;}原创 2012-09-21 21:01:06 · 672 阅读 · 0 评论 -
c++ 虚函数的实现机制
1、c++实现多态的方法其实很多人都知道,虚函数在c++中的实现机制就是用虚表和虚指针,但是具体是怎样的呢?从more effecive c++其中一篇文章里面可以知道:是每个类用了一个虚表,每个类的对象用了一个虚指针。具体的用法如下:class A{public: virtual void f(); virtual void g();private原创 2012-04-21 19:45:49 · 806 阅读 · 0 评论 -
自己实现memcpy/strcpy/strcmp/strcat/strlen/strstr
字节拷贝函数:void * memcpy1(void *dest, const void *src, size_t n){ assert(dest!=NULL&&src!=NULL); //有效性检测 if(dest == src) return dest; else if(dest原创 2012-10-23 18:10:37 · 931 阅读 · 0 评论