摘要: 移动 k 上h l 左 右 j 下^ 移动到该行第一个非空格的字符处w 向前移动一个单词,将符号或标点当作单词处理W 向前移动一个单词,不把符号或标点当作单词处理b 向后移动一个单词,把符号或标点当作单词处理B 向后移动一个单词,不把符号或标点当作单词处理( 光标移至句首) 光标移至句尾{ 光标移至段落开头} 光标移至段落结尾H 光标移至屏幕顶行M 光标移至屏幕中间行L 光标移至屏幕最后... 阅读全文
posted @ 2013-07-10 20:16 yitianke 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 首先看一个例子: 1 #include <iostream> 2 using namespace std; 3 4 class A{}; 5 6 class B 7 { 8 int b; 9 char c;10 };11 12 class C13 {14 int c1; 15 static int c2;16 };17 int C::c2 = 1;18 19 class D:public C,public B{20 int d;21 }; 22 int main()23 {24 cout<<"sizeof(A)="<<sizeof(A). 阅读全文
posted @ 2013-05-03 21:39 yitianke 阅读(469) 评论(0) 推荐(2) 编辑
摘要: 1 #include <iostream> 2 3 using namespace std; 4 5 6 int main() 7 { 8 int v[2][2]={{1,2},{3,4}}; 9 cout<<"v = "<<v<<endl;10 cout<<"*v = "<<*v<<" &v = "<<&v<<endl;11 cout<<"*v+1 = "<<*v+1 阅读全文
posted @ 2013-05-02 21:12 yitianke 阅读(712) 评论(0) 推荐(0) 编辑
摘要: 指针用“*”和“->”操作符,引用用"."操作符,当然这是表面的区别。引用必须代表一个对象,没有所谓的空引用。指针可以为NULL。即引用必须有初值,指针不然。所以在使用pointers之前,必须测试它是否为null。references不需要测试。pointers可以被重新赋值,指向另一个对象,reference总是指向(代表)它最初获得的那个对象:string s1("Nancy");string s2("Clancy");string &rs = s1; //rs指向s1.string *ps = &s1; 阅读全文
posted @ 2013-04-25 22:06 yitianke 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 1 #include<iostream> 2 #include <assert.h> 3 using namespace std; 4 5 void myStrcpy(char* Dest, const char *Src) 6 { 7 assert((Dest!= NULL)&&(Src!=NULL)); 8 while((*Dest = *Src)!='\0') 9 {10 Dest++;11 Src++;12 }13 }14 15 int main()16 {17 char dest[] = "helloworl... 阅读全文
posted @ 2013-04-20 12:15 yitianke 阅读(589) 评论(2) 推荐(0) 编辑
摘要: sudo apt-get install gcc g++ python python-dev //C++和python安装,必装sudo apt-get install mercurial //NS3代码维护使用的源码版本控制管理系统sudo apt-get install bzr //运行python绑定ns-3-dev需要bazaar这个组件sudo apt-get install libgtk2.0-0 libgtk2.0-dev //基于GTK的配置系统sudo apt-get install gdb valgrind //调试工具sudo apt-get install doxyge 阅读全文
posted @ 2013-04-19 21:07 yitianke 阅读(596) 评论(0) 推荐(0) 编辑
摘要: 栈是后进先出,队列是先进先出。插入元素时,向栈stack1插入,比如插入a,b,c。现在模拟取出元素,如果直接从stack1中pop,这时会弹出c。我们可以从stack1中把所有元素pop,放入stack2中,这时候stack2中是c,b,a。这时对stack2进行pop操作,取出的就是a了,stack2现在元素为c,b。这时在考虑向队列中插入d,向stack1中放入d,然后队列进行pop操作,stack2.pop(),取出b,符合实际。再一次进行pop,stack2弹出c,再次弹出,stack1弹出d,插入stack2中,stack2再次pop,弹出d。符合队列的先进先出。参考代码如下:#i 阅读全文
posted @ 2013-04-19 21:04 yitianke 阅读(1304) 评论(0) 推荐(0) 编辑
摘要: 希尔排序,也称递减增量排序算法,是插入排序的一种高速而稳定的改进版本。它的作法不是每次一个元素挨一个元素的比较。而是初期选用大跨步(增量较大)间隔比较,使记录跳跃式接近它的排序位置;然后增量缩小;最后增量为 1 ,这样记录移动次数大大减少,提高了排序效率。希尔排序对增量序列的选择没有严格规定。算法的具体步骤为:先取一个正整数 d1,所有距离为 d1的倍数的记录看成一组,然后在各组内进行插入排序。然后取 d2( d2< d1),重复1中的操作,进行排序。直到d=1。一般的,取d1=n/2,d2=d1/2,dk=dk-1/2,...直到d=1;已知的最好步长串行是由Sedgewick提出的 阅读全文
posted @ 2013-04-03 22:40 yitianke 阅读(356) 评论(0) 推荐(0) 编辑
摘要: 区别C++中对于类来说,对于其中的成员,用点操作符.来获得,而对于一个指向类对象的指针来说,则用箭头操作符->调用该指针所指向对象的成员。当类定义->重载操作符后,则既可以用箭头操作符,也可以用点操作符。重载->操作符重载箭头操作符必须定义为类成员函数。没有显式形参(而且是类成员,唯一隐式形参是this)。->的右操作数不是表达式,而是对应类成员的一个标识符,由编译器处理获取成员工作。重载箭头操作符必须返回指向类类型的指针,或者返回定义了自己的箭头操作符的类类型对象。如果返回类型是指针,则内置箭头操作符可用于该指针,编译器对该指针解引用并从结果对象获取指定成员。如果被指 阅读全文
posted @ 2013-04-03 16:47 yitianke 阅读(1035) 评论(0) 推荐(1) 编辑
摘要: 写东西需要用到双向队列,平时不是很常用,在网上搜到一篇文章,感觉讲的比较好,转过来以便备用。没找到文章最原始的出处,给一个在百度最靠前的链接吧。http://www.yesky.com/100/1889600.shtml首先,当考虑到内存分配和执行性能的时候,使用std::deque要比std::vector好。Deque总览deque和vector一样都是标准模板库中的内容,deque是双端队列,在接口上和vector非常相似,在许多操作的地方可以直接替换。假如读者已经能够有效地使用vector容器,下面提供deque的成员函数和操作,进行对比参考。函数描述c.assign(beg,end) 阅读全文
posted @ 2013-04-01 22:17 yitianke 阅读(1726) 评论(0) 推荐(0) 编辑