C++
文章平均质量分 73
nosmatch
这个作者很懒,什么都没留下…
展开
-
c_str函数
c_str函数的返回值是const char*的,不能直接赋值给char*,所以就需要我们进行相应的操作转化,下面就是这一转化过程。 c++语言提供了两种字符串实现,其中较原始的一种只是字符串的c语言实现。与C语言的其他部分一样,它在c++的所有实现中可用,我们将这种实现提供的字符串对象,归为c-串,每个c-串char*类型的。 标准头文件包含操作c-串的函数库。这些库函数表达转载 2012-05-09 10:16:56 · 585 阅读 · 0 评论 -
获得本机多个ip地址(源码)
vector get_local_ip(){ int s; struct ifconf conf; struct ifreq *ifr; char buff[BUFSIZ]; int num; int i; vector ip_vec; s = socket(PF_INET, SOCK_DGRAM, 0); conf.ifc_len = BUFSIZ; conf.ifc_b原创 2012-09-04 17:05:16 · 1008 阅读 · 0 评论 -
对齐方式介绍
一、什么是字节对齐,为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数转载 2012-06-14 19:45:02 · 3383 阅读 · 0 评论 -
内存映射
内存映像其实就是在内存中创建一个和外存文件完全相同的映像。用户可以将整个文件映射到内存中也可以部分映射到内存。系统会将对内存映像的改动如实的反映到外存文件中。从而实现了通过内存映像对外存文件的操作。 内存映像的特点:1、 可以加快对IO的操作速度。2、 用户可以通过指针对文件进行操作,间接~~~3、 实现了文件数据的共享,将外存文件映射到共享内存中,很方便的实现了数据共享,并能转载 2012-06-14 18:22:18 · 699 阅读 · 0 评论 -
计算机内部浮点型数据的存储
C/C++浮点数在内存中的存储方式 任何数据在内存中都是以二进制的形式存储的,例如一个short型数据1156,其二进制表示形式为00000100 10000100。则在Intel CPU架构的系统中,存放方式为 10000100(低地址单元) 00000100(高地址单元),因为Intel CPU的架构是小端模式。但是对于浮点数在内存是如何存储的?目前所有的C/C++编译器都是转载 2012-06-14 16:07:46 · 3485 阅读 · 0 评论 -
堆栈、堆等介绍
C++中,内存分为5个区:1.堆、2.栈、3.自由存储区4.全局/静态存储区和5.常量存储区。 栈:是由编译器在需要时自动分配,不需要时自动清除的变量存储区。通常存放局部变量、函数参数等。 堆:是由new分配的内存块,由程序员释放(编译器不管),一般一个new与一个delete对应,一个new[]与一个delete[]对应。如果程序员没有释放转载 2012-06-12 21:50:03 · 645 阅读 · 0 评论 -
局部类和嵌套类(类定义中包含类定义)
局部类 在一个函数体内定义的类称为局部类。局部类中只能使用它的外围作用域中的对象和函数进行联系,因为外围作用域中的变量与该局部类的对象无关。局部类不能被外部所继承。在定义局部类时需要注意:局部类中不能说明静态成员函数,并且所有成员函数都必须定义在类体内。在实践中,局部类是很少使用的。下面是一个局部类的例子。 int a; void fun() { static转载 2012-05-15 15:13:06 · 8054 阅读 · 0 评论 -
vector,map,list,queue区别
1。vector (连续的空间存储,可以使用[]操作符)快速的访问随机的元素,快速的在末尾插入元素,但是在序列中间岁间的插入,删除元素要慢,而且如果一开始分配的空间不够的话,有一个重新分配更大空间,然后拷贝的性能开销.2。deque (小片的连续,小片间用链表相连,实际上内部有一个map的指针,因为知道类型,所以还是可以使用[],只是速度没有vector快)快速的访问随机的元素,快速的在开始转载 2012-05-14 18:08:33 · 780 阅读 · 0 评论 -
使用静态库时需要注意的事项
转载:在linux下c++开发时, 使用静态库时编译时需要注意如下:编译时静态库一定要放在最后。如:(在-o后面)gcc test.cpp –o test.exe libexample.a使用静态库时一定要连接所有用到的静态库如要使用libwinkeemq-cpp.a,由于libwinkeemq-cpp.a用到了libactivemq-cpp.a,而libactivem转载 2012-05-31 19:09:38 · 1229 阅读 · 0 评论 -
C++ string类常用函数
C++string类常用函数string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出le转载 2012-05-30 16:54:48 · 467 阅读 · 0 评论 -
c++强制类型转换
C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是: TYPE b = (TYPE)a C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。 const_cast,字面上理解就是去const属性。 static_cast,命名上理解是静态类型转换。如int转换成char。 dynamic_cast,命名上理解是转载 2012-05-30 16:42:46 · 524 阅读 · 0 评论 -
const_cast应用
用法:const_cast (expression) 该运算符用来修改类型的const或volatile属性。除了const 或volatile修饰之外, type_id和expression的类型是一样的。 一、常量指针被转化成非常量指针,并且仍然指向原来的对象; 二、常量引用被转换成非常量引用,并且仍然指向原来的对象; 三、常量对象被转换成非常量对象。转载 2012-05-09 10:22:56 · 481 阅读 · 0 评论 -
reinterpret_cast应用
reinterpret_cast是C++里的强制类型转换符。 操作符修改了操作数类型,但仅仅是重新解释了给出的对象的比特模型而没有进行二进制转换。 例如:int *n= new int ; double *d=reinterpret_cast (n); 在进行计算以后, d 包含无用值. 这是因为 reinterpret_cast 仅仅是复制 n 的比特位到转载 2012-05-09 10:03:14 · 664 阅读 · 0 评论 -
\r\n"在不同操作系统中的不同作用
在Windows中:'\r' 回车,回到当前行的行首,而不会换到下一行;'\n' 换行,换到当前位置的下一行,而不会回到行首;回车”(Carriage Return)和“换行”(Line Feed)这两个概念的来历和区别。 在计算机还没有出现之 前,有一种叫做电传打字机(Teletype Model 33,Linux/Unix下的tty概念也来自于此)的玩意,每秒钟可以打1转载 2012-10-18 11:19:22 · 2213 阅读 · 0 评论