![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 78
子目
这个作者很懒,什么都没留下…
展开
-
C++中sizeof(struct)怎么计算
版权属于原作者,我只是排版。1、 sizeof应用在结构上的情况请看下面的结构:struct MyStruct{ double dda1; char dda; int type;};对结构MyStruct采用sizeof会出现什么结果呢?sizeof(MyStruct)为多少呢?也许你会这样求:sizeof(MyStruct)转载 2012-11-21 10:24:08 · 343 阅读 · 0 评论 -
蜂窝小区最短距离的坐标系解法
http://blog.csdn.net/nys001/article/details/12637201如下图所示,蜂窝小区,以1为中心,顺时针编号,编号最大限定为100000。求任意两编号之间的最短距离。两个相邻小区的距离为1示例:19到30的最短距离为5 实现如下三个接口:/****************************************转载 2014-01-04 09:54:49 · 2160 阅读 · 0 评论 -
关于对象切片与多态性的认识
#include #include using namespace std;class Pet { string pname;public: Pet(const string& name) : pname(name) {} virtual string name() const { return pname; } virtual string descr原创 2013-09-12 10:11:23 · 573 阅读 · 0 评论 -
虚继承对构造函数的影响
3、虚继承对构造函数的影响对于构造函数的影响,借助于下面的原则可以理解(来自《深入理解C++对象模型》)构造函数的调用可能内带大量的隐藏码,因为编译器会对构造函数进行扩充,一般而言编译器所作的扩充操作大约如下:1、记录在成员初始化列表中的数据成员的初始化操作会被放到构造函数本身中,按照数据成员声明的顺序2、如果有一个数据成员没有出现在初始化列表中,但是它有一个默认构造函数,那么这个转载 2013-09-12 19:02:51 · 758 阅读 · 0 评论 -
各种构造函数的调用
#includeusing std::cout;using std::endl;class Base{protected:int value;public: Base(int i):value(i){cout<<" Base"<<endl;} Base(){cout<<" default Base"<<endl;} Base(Ba原创 2013-09-12 19:55:02 · 557 阅读 · 0 评论 -
c++中类的位拷贝与拷贝构造函数(浅拷贝与深拷贝)
位拷贝拷贝的是地址(也叫浅拷贝),而值拷贝则拷贝的是内容(深拷贝)。深拷贝和浅拷贝可以简单理解为:如果一个类拥有资源,当这个类的对象发生复制过程的时候,资源重新分配,这个过程就是深拷贝,反之,没有重新分配资源,就是浅拷贝。 位拷贝,及"bitwise assignment"是指将一个对象的内存映像按位原封不动的复制给另一个对象,所谓值拷贝就是指,将原对象的值复制一份给新对象。 在用"bitwis原创 2013-08-26 10:06:26 · 671 阅读 · 0 评论 -
c++拷贝构造函数(对比于上一篇)
#include #include using namespace std;ofstream out("HowMany.out");class HowMany { string name; static int objectCount;public: HowMany(const string str=""):name(str) { objectCount++;原创 2013-08-26 10:36:37 · 432 阅读 · 0 评论 -
C++中const、volatile、mutable的用法
const、volatile、mutable的用法转载于http://blog.csdn.net/wuliming_sc/article/details/3717017const修饰普通变量和指针const修饰变量,一般有两种写法:const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYP转载 2013-08-23 19:56:27 · 477 阅读 · 0 评论 -
内存的不同分配方式
内存分配方式 内存分配方式有三种: [1] 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量, static 变量。 [2] 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中 ,效率很高,但是分配的内存容量有限。[3] 从堆上分配,转载 2013-07-27 10:17:38 · 485 阅读 · 0 评论 -
同一进程中的线程可以共享哪些资源
1.用堆和栈分配一个变量可能在以后的执行中产生意想不到的结果,而这个结果的表现就是内存的非法被访问,导致内存的内容被修改。理解这个现象的两个基本概念是:在一个进程的线程共享堆区,而进程中的线程各自维护自己的堆栈。如果声明一个成员变量,如char name[200],随着这段代码调用的结束,name在栈区的地址会被释放。而如果是char* name = new char[200];情况完全不转载 2013-05-12 20:00:36 · 860 阅读 · 0 评论 -
堆 栈 内存
一、地址1.对于32位的操作系统,地址都是32位的,前0不可以省略例:[cpp] view plaincopyprint?int *p = NULL; cout//输出00000000,而不是0 int *p = NULL;cout2.指针可以通过内存地址直接访问数据,可避免在程序中复制大量的代码。因此指针效率最高例:a[j]:a+j转载 2013-05-12 20:26:09 · 502 阅读 · 0 评论 -
C++内联函数(Inline)介绍
介绍内联函数之前,有必要介绍一下预处理宏。内联函数的功能和预处理宏的功能相似。相信大家都用过预处理宏,我们会经常定义一些宏,如#define TABLE_COMP(x) ((x)>0?(x):0) 就定义了一个宏。 为什么要使用宏呢?因为函数的调用必须要将程序执行的顺序转移到函数所存放在内存中的某个地址,将函数的程序内容执行完后,再返回到转去执行转载 2013-04-12 09:21:52 · 428 阅读 · 0 评论 -
01背包
01背包问题总结 一 问题描述: 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。 所谓01背包,表示每一个物品只有一个,要么装入,要么不装入。二 解决方案: 考虑使用dp问题 求解,定义一个递归式 opt[i][v] 表示前i个物品,在背包容量大小为v的情况下,最大的装载量。转载 2014-01-04 19:04:24 · 707 阅读 · 0 评论