shared_ptr和unique_ptr都支持的操作 解释 shared_ptr sp或unique_ptr up 空智能指针,可以指向类型为T的对象 p 将p用作一个条件判断,若p指向一个对象,则为true *p 解引用p,获得它指向的对象 p->mem 等价于(*p).mem p.get() 返回p中保存的指针.要小心使用,若智能指针释放了其对象,返回的指针所指向的对象也就消失了 swap(p, q)或p.swap(q) 交换p和q中的指针 shared_ptr独有的操作 解释 make_…
对象的生存期: 全局对象:程序启动时创建,程序结束时销毁 局部static对象:第一次使用前创建,程序结束时销毁 局部自动对象:定义时创建,离开定义所在程序块时销毁 动态对象:生存期由程序控制,在显式创建时创建,显式销毁时销毁 动态对象的正确释放极易出错.为安全使用动态对象,标准库定义了智能指针来管理动态对象 内存空间: 静态内存:局部static对象.类static数据成员.定义在任何函数之外的变量 栈内存:定义在函数内的非static对象 堆内存:动态对象,即运行时分配的对象 静态内存和栈内…
第9章,装饰网站导航 限制访问,处于隐私方面考虑,浏览器已经开始限制可以对伪类:visited应用哪些CSS属性了.其中包括对已访问过的链接定义color.background-color.border-color等样式(除非已经为那些链接的正常状态定义了颜.背景色和边框色) 对于<a>标签可以对所有不同的访问状态设置样式,但要让样式有效,必须以特定的顺序指定链接:link.visited.hover.active CSS3按钮生成器:http://css3button.net CSS3按钮优…
练习12.1:在此代码的结尾,b1 和 b2 各包含多少个元素? StrBlob b1; { StrBlob b2 = {"a", "an", "the"}; b1 = b2; b2.push_back("about"); } b2被销毁,b1包含4个元素. 练习12.2:编写你自己的StrBlob 类,包含const 版本的 front 和 back. const string& StrBlob::front() c…
1.C函数库提供了两个函数,malloc和free,分别用于执行动态内存分配和释放,这些函数维护一个可用内存池. void *malloc(size_t size);//返回指向分配的内存块起始位置的指针.分配的是一块连续内存.分配单位:字节 void free(void *point); 另外 void *calloc(size_t num_elements,size_t element_size);//分配内存并初始化为0 void realloc(void *ptr, size_t new…
动态内存与只能指针 静态内存用来保存局部static对象, 类static数据成员以及定义在任何函数之外的变量. 栈内存用来保存定义在函数内的非static对象. 分配在静态或栈内存中的对象由编译器自动创建和销毁. 栈中的对象, 仅在其定义的程序块运行时才存在; static对象在使用之前分配, 在程序结束时销毁. 自由空间或堆用来存储动态分配的对象--即在程序运行时分配的对象. 动态对象的生存期由程序来控制, 也就是说, 当动态对象不在使用时, 我们的代码必须显示地销毁它们. 动态内存与智能指…
本章内容: 1.动态创建html内容的“老”技巧:document.write()和innerHTML属性 2.DOM方法:createElement(),creatTextNode(),appendChild(),insertBefore(). 一.document.write() 语法:document.write(“ ”) document.write(变量) 缺点:违背了“分离js”原则.即使把document.write语句挪到外部函数里,还是需要在html文档的<body>部分使用…
Python支持的工具包非常多.但没有一个被觉得标准的工具包.用户选择的自由度大些.本章主要介绍最成熟的跨平台工具包wxPython.官方文档: http://wxpython.org/ ------ 丰富的平台: Tkinter实际上类似于标准,由于它被用于大多数正式的Python GUI程序.并且它是Windows二进制公布版的一部分. 可是在UNIX上要自己编译安装. 还有一个越来越受欢迎的工具是wxPython. 这是个成熟并且特性丰富的包,也是Python之父,Guido van Ro…
Jave并发的艺术 并发编程的挑战 上下文切换 CPU通过时间片分配算法来循环执行任务,当前时间片执行完之后会切换到下一个任务.但是,切换会保存上一个任务的状态,一遍下次切换回这个任务时,可以再次加载这个状态.所以任务从保存到再加载的过程就是一次上下文切换. 如何减少上下文切换 减少上下文切换的方法有无锁并发编程.CAS算法.使用最少线程和使用协程 无锁并发编程:多线程竞争锁时,会引起上下文切换,所以多线程处理数据时,可以用一些办法避免使用锁,如将数据ID按照Hash算法取模分段,不同的线程处理…
第1章 开始 第Ⅰ部分 C++基础 第2章 变量和基本类型 第3章 字符串.向量和数组 第4章 表达式 第5章 语句 第6章 函数 第7章 类 第 Ⅱ 部分 C++标准库 第8章 IO库 第9章 顺序容器 第10章 泛型算法 第11章 关联容器 第12章 动态内存 第 Ⅲ 部分 类设计者的工具 第13章 拷贝控制 第14章 重载运算与类型转换 第15章 面向对象程序设计 第16章 模板与泛型编程 第 Ⅳ 部分 高级主题 第17章 标准库特殊设施 第18章 用于大型程序的工具 第19章 特殊工具与…