菜鸟笔记
提升您的技术认知

C++ 笔记 第37页

vector 中元素的删除

vector 中删除元素的方法是:b.erase(it);  //b是vector, it 是 vector::iterator 但是删除vector 中的元素有些诡异(^_^),稍不注意,就会出错。  下面先给出基本v...

赞(1)菜鸟菜鸟阅读(3240)

空类大小

1、为何空类的大小不是0呢? 为了确保两个不同对象的地址不同,必须如此。 类的实例化是在内存中分配一块地址,每个实例在内存中都有独一无二的二地址。同样,空类也会实例化,所以编译器会给空类隐含的添加一个字节,这样空类实例化后就有独一无二的地址...

赞(1)菜鸟菜鸟阅读(2079)

sizeof类大小

 决定C ++中对象的大小的因素: 1.所有非静态数据成员的大小 2.数据成员的顺序 3.字节对齐或字节填充 4.其直接基类的大小虚函数的存在 5.  正在使用的编译器 6.继承模式(虚拟继承)   一、使用s...

赞(1)菜鸟菜鸟阅读(3274)

string.h的strcmp的性能比较

string.h基于汇编实现strcmp ,和普通strcmp,针对循环调用次数和字符串查找长度2个纬度做了一次性能对比效测试。 #include <sys/socket.h> #include <sys/epoll.h&...

赞(1)菜鸟菜鸟阅读(3485)

递归程序设计心得与体会

递归程序设计,用递归设计出来的程序总是简洁易读,极具美感。但是对于刚入门的学者来说,当遇到递归场景时,自己却难以正确的设计出合理的递归程序。博主曾经也是困惑不已,写的多了,也就渐渐的熟悉了递归设计。特谈一下自己的感受,有些术语是博主自己总结...

赞(1)菜鸟菜鸟阅读(2480)

多线程并发编程的基本问题

这是个老掉牙的话题,但基本上绝大多数的讨论都跑偏了。 绝大多数讨论的核心在于 如何设计一把锁来同步共享变量的访问。 这事实上完全是本末倒置: 我们需要设计的一个立交桥,而不是为了设计一个红绿灯! 事实上,多线程编程就不应该访问共享变量,如果...

赞(1)菜鸟菜鸟阅读(3233)

c++强制类型转换(static_cast 和dynamic_cast)

首先回顾一下C++类型转换: C++类型转换分为:隐式类型转换和显式类型转换 第1部分. 隐式类型转换 又称为“标准转换”,包括以下几种情况: 1) 算术转换(Arithmetic conversion) : 在混合类型的算术表达...

赞(1)菜鸟菜鸟阅读(2887)

结构体大小、内存对齐方式

1.首先是各编译器下sizeof()值: 32位编译器:32位系统下指针占用4字节 char :1个字节 char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器) short i...

赞(1)菜鸟菜鸟阅读(4000)