- 博客(18)
- 资源 (7)
- 收藏
- 关注
转载 TCP/IP-----区别、缓存、流量控制、拥塞控制
一、TCP、UDP的区别1. tcp是面向连接的,开始发送之前先要建立连接。udp是无连接的2. tcp提供可靠的传输,保证数据的正确和有序到达,udp尽最大可能到达,不保证数据的正确3. UDP不提供流量控制和拥塞控制,当网络拥塞时不会降低源主机的发送速率4. tcp开销大,首部20字节,UDP开销小,首部8字节5. 每一个TCP连接是
2015-05-29 18:35:30 2060
转载 STL面试
1.C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和set封装了二叉树等2.标准关联容器set, multiset, map, multimap内部采用的就是一种非常高效的平衡检索二叉
2015-05-28 10:38:06 764
转载 C+中explicit的用法
explicit 是避免构造函数的参数自动转换为类对象的标识符[cpp] view plaincopyprint?#include using namespace std; class A { public: explicit A(int a) { cout"创建类成功了!" }
2015-05-24 10:53:38 7415
转载 C++模板
C++模板 模板是C++支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数、返回值取得任意类型。 模板是一种对类型进行参数化的工具; 通常有两种形式:函数模板和类模板; 函数模板针对仅参数类型不同的函数; 类模板针对仅数据成员和成员函数类型不同的类。 使用模板的目的就是能够让程序
2015-05-23 15:14:32 267
转载 C 某些库函数中字符串处理函数的具体实现
其中包括:strcpy(char *, char *),strncpy();strcat();strncat();strcmp();strncmp();strchr();strrchr();strlen();strdup();strspn();strpbrk();strtok(); memset();memcpy();memmove();memcmp();memscan();strstr(
2015-05-21 00:48:51 455
转载 为什么不要在构造函数中调用虚函数
先看一段在构造函数中直接调用虚函数的代码: 1 #include 2 3 class Base 4 { 5 public: 6 Base() { Foo(); } ///< 打印 1 7 8 virtual void Foo() 9 {10 std::cout 1 std::endl;11 }12 };
2015-05-21 00:28:37 428
转载 关于派生类构造函数与基类构造函数的调用顺序问题
《面向对象程序设计基础(第二版》李师贤等,第254页:C++语言的基本规则是:创建一个派生类的对象时,如果基类带有构造函数,则先调用基类的构造函数,然后才调用派生类的构造函数。 《Thinking in C++》,刘宗田等译,第261页:可以看出,构造在类层次的最根处开始,而在每一层,首先调用基类构造函数,然后调用成员对象构造函数。 《C++ Primer Plus(第四版)中文版》,
2015-05-21 00:05:27 6563 2
转载 为什么构造函数不能为虚函数
1,从存储空间角度 虚函数对应一个vtable,这大家都知道,可是这个vtable其实是存储在对象的内存空间的。问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,可是对象还没有实例化,也就是内存空间还没有,无法找到vtable,所以构造函数不能是虚函数。2,从使用角度 虚函数主要用于在信息不全的情况下,能使重载的函数得到对应的调用。构造函数
2015-05-20 23:58:15 328
转载 c++中的inline用法
一、inline 关键字用来定义一个类的内联函数,引入它的主要原因是用它替代C中表达式形式的宏定义。 表达式形式的宏定义一例: #define ExpressionName(Var1,Var2) ((Var1)+(Var2))*((Var1)-(Var2))为什么要取代这种形式呢,且听我道来: 1. 首先谈一下在C中使用这种形式宏定义的原因,C语言是一个效率很高
2015-05-20 20:04:42 350
转载 Linux下的进程间通信-详解
详细的讲述进程间通信在这里绝对是不可能的事情,而且笔者很难有信心说自己对这一部分内容的认识达到了什么样的地步,所以在这一节的开头首先向大家推荐著 名作者Richard Stevens的著名作品:《Advanced Programming in the UNIX Environment》,它的中文译本《UNIX环境高级编程》已有机械工业出版社出版,原文精彩,译文同样地道,如果你的确对在Linux下编
2015-05-17 11:33:06 470
转载 标准C++的类型转换符
使用标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast。1、static_cast 用法:static_cast (expression) 该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法: (1)用于类层次结构中基类和
2015-05-16 15:37:48 335
转载 c++中内存分配方式
内存的三种分配方式:1. 从静态存储区分配:此时的内存在程序编译的时候已经分配好,并且在程序的整个运行期间都存在。全局变量,static变量等在此存储。2. 在栈区分配:相关代码执行时创建,执行结束时被自动释放。局部变量在此存储。栈内存分配运算内置于处理器的指令集中,效率高,但容量有限。3. 在堆区分配:动态分配内存。用new/malloc时开辟,delete/free时释放。生存期由用户指
2015-05-15 19:17:02 378
原创 c++中的几个常用关键字
一、static关键字用途太多,以致于让新手模糊。不过,总结起来就有两种作用,改变生命期和限制作用域。如:l 修饰inline函数:限制作用域l 修饰普通函数:限制作用域, l 修饰全局变量:限制作用域不能被其他文件使用,像全局变量,全局函数如果没有加上static,则可以同过extern ,被其他的文件调用1. #incl
2015-05-15 18:54:04 1529
转载 堆与栈的区别
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回
2015-05-15 17:06:05 252
转载 函数调用方式stdcall、cdecl
最大的区别就是__cdecl是由调用函数者释放堆栈,而__stdcall由被调用者释放。但是我们在调用任一种函数时,都没有进行显示的释放堆栈工作。这个工作由编译器完成,它帮我们生成了这个中间要使用的代码。 以下系转载: 在C语言中,假设我们有这样的一个函数: int function(int a,int b) 调用时只要用r
2015-05-15 00:05:26 479
原创 R语言画图
x=0for(i in 1:60)x[i]=0x[1]=20for(i in 2:60)x[i]=x[i-1]+0.5y=c(520,460,500,510,506,505,500,523,500,505,550,490,505,498,510,485,488,475,510,505,500,498,460,515,555,510,480,506,505,475,460,480,4
2015-05-14 10:47:12 866
转载 elf中的bss data
一般C语言的编译后执行语句都编译成机器代码,保存在.text段;已初始化的全局变量和局部静态变量都保存在. data段;未初始化的全局变量和局部静态变量一般放在一个叫.“bss”的段里。我们知道未初始化的全局变量和局部静态变量默认值都为0,本来它们也可以被放在.data段的,但是因为它们都是0,所以为它们在.data段分配空间并且存放数据0是没有必要的。局部数据在程序执行过程的栈中进行初始化。运行
2015-05-13 23:55:05 1801
转载 elf文件格式(Linux中对象文件)
ELF(Executable and Linking Format)是一种对象文件的格式,用于定义不同类型的对象文件(Object files)中都放了什么东西、以及都以什么样的格式去放这些东西。它自最早在 System V 系统上出现后,被 xNIX 世界所广泛接受,作为缺省的二进制文件格式来使用。可以说,ELF是构成众多xNIX系统的基础之一,所以作为嵌入式Linux系统乃至内核驱动程序开发人
2015-05-13 00:42:06 754
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人