再读c++primer plus 003】的更多相关文章

1.如果函数返回一个结构而不是一个指向结构的引用,将把整个结构复制到一个临时位置,再将这个拷贝复制给dup.但在返回值为引用时,将直接复制给变量,其效率更高. 2.返回引用时最重要的一点是,应避免返回函数终止时不再存在的内存单元调用. 避免方法:(1)返回一个作为参数传递给函数的引用. free_throws & accumulate(free_throws & target,const free_throws &sourse) { ....... return target; }…
第九章  内存模型和名称空间 1.如果文件名包含在尖括号中,则c++编译器将在存储标准头文件的主机系统的文件系统中查找,但如果文件名包含在双引号中,则编译器将首先查找当前的工作目录或源代码目录(或其他目录,这取决于编译器),在包含自己的头文件时,应使用引号而不是尖括号. 2.存储持续性:(1)自动存储持续性:在执行完函数或代码块时,他们使用的内存被释放. (2)静态存储持续性:static,在整个程序运行过程中都存在. (3)线程存储持续性:使用关键字thread_local声明的,其生命周期和…
1.读取char值时,与读取其它基本类型一样,cin将忽略空格和换行符,函数cin.get(ch)读取输入的下一个字符(即使是空格),并将其赋给变量ch. 2.指针和const:(1)让指针指向一个常量对象,这样可以防止使用该指针来修改所指向的值.(2)将指针本身声明为常量,这样可以防止改变指针指向的位置. 3.执行函数调用语句时,程序将在函数调用后立即存储该指令的内存地址,并将函数参数复制到堆栈,跳到标记函数起点的内存单元,执行函数代码(也许还需将返回值放到寄存器中),然后跳回到地址被保存的指…
使用类: 1.重载限制:(1)重载后的运算符必须至少有一个操作数是用户定义的类型,这将防止用户为标准类型重载运算符 (2)使用运算符时不能违反运算符原来的语法规则,不能修改运算符的优先级 (3)不能创建新运算符 (4)不能重载下面的运算符: .:成员运算符 sizeof .*:成员指针运算符 :::作用域解析运算符 ?::条件运算符 typeid:一个RTTL运算符 const_cast :强制类型转换运算符 dynamic_cast:强制类型转换运算符 reinterpret_cast:强制类…
对象和类: 1.类和结构的唯一区别是结构的默认访问类型是public,而类为private: 2.其定义位于类声明中的函数都将自动成为内联函数,也可以在类声明外定义成员函数,并使其成为内联函数,为此只需在类实现部分中定义函数时使用inline限定符即可. 3.在OOP中,调用成员函数被称为发送消息,因此将同样的消息发送给两个不同的对象将调用同一个方法,但该方法被用于两个不同的对象. 4.void stock::show() const 以这种方式声明和定义的类函数被称为const成员函数,就像应…
1. OOP强调的是在运行阶段(而不是编译阶段)进行决策,运行阶段指的是程序正在运行时,编译阶段指的是编译器将程序组合起来时. 2.变量的值都存储在栈中,而new从被称为堆或自由存储区的内存区域分配内存. 3.静态联编:是在编译时加入到程序中的. 动态联编:是在程序运行时创建的. 4.数组名被解释为其第一个元素的地址,而对数组名应用地址运算符时,得到的是整个数组的地址. 5.自动存储:在函数中创建,用完就消亡. 静态存储:整个程序执行期间都存在的存储方式. 动态存储:new和delete运算符提…
刚上大学那时,几个室友一块买了本<C++ Primer>第4版,看了一遍后就没怎么碰了,偶尔拿出来翻翻,当作工具书使用.后来知道有第5版了,一直觉得内容差不多吧.直到最近,再读其中的一些内容,结合自己曾经所学所用,很多地方都想得更深了.结合C++11,也有很多新的发现.人就是在不断否定过去的自己中成熟的. 以下是书的第2章,变量和基本类型,的一些笔记. 一.基本内置类型 基本数据类型包括算数类型(arithmetic type)和空类型(void). 书中列出了每种类型的最小存储空间,在不同机…
http://loopjump.com/gfs_paper_note/ 再读GFS的一些笔记.主要涉及GFS架构.Chunk大小选择的一些折中考量.元数据管理及锁.写数据流程.GFS一致性模型的理解.快照的实现原理.过期失效副本检测等几个问题.…
前段时间在豆瓣上无意间看到一个帖子"我为什么把thinking in java 读了10遍",是11年的帖子,下面评论至今,各种声音都有,不过大多数还是佩服和支持的.我个人来讲也是非常支持的,而且也打算再读<Thinking in Java>,上学那会老师再三强调:"读书百遍,其义自见!",但是对于程序猿,不光要读,而且要实践. 一.为什么要再读 上一篇,我曾经说过,如何在Java界立足,凭借的就两点: 1.基本功,包括:Java基本知识,(Java编程…
再读Android sqlite Android原生支持sqlite数据库操作,sqlite时轻量级关系型数据库,支持标准sql语句.Android对sqlite进行良好的接口封装来避免sql注入等安全问题. 本文解决的问题: 1.Android App内如何创建数据库 2.Android App内创建数据库如何自定义文件路径 3.Android App内获取数据库流程解析 4.无Context模式使用数据库,可在uiautomator1.0测试框架和其他app_process启动的进程内使用数…
Javascript中关于数组对象的操作方法比较多也比较杂,正好再次捡起<Javascript高级程序设计>来读,把它们一一总结梳理了一下: 方法类别 方法名称 方法描述 参数 返回值 备注 转换方法 toString() 把数组转换为字符串,并返回结果. 无 以逗号分隔的字符串 调用每一项的toString()方法 valueOf() 返回数组对象的原始值. 无 原数组 toLocaleString() 把数组转换为字符串,并返回结果. 无 以逗号分隔的字符串 调用每一项的toLocaleS…
随着工作的深入,每次读这7层协议,每次都有不同的理解. 分层名                                                               分层号           描述                                                                   比喻  应用层Application Layer (台湾翻:应用层)               7              用户的应用程序和网…
玩过一段时间后在来读读vue2.0会发现受益良多 概述: vue2.0 是一套构建用户界面的渐进式框架, 使用virtual DOM  提供了响应式和组件化, 允许使用简介的模板语法来声明式的将数据渲染到DOM系统 模板语法中有过滤器功能filter---建议使用computed去完成,如果你过滤的数据不需要在其他组件中使用,那就无所谓了 提供了较为全面的指令系统(数据绑定\条件渲染与循环\事件绑定)     class和Style  社区中有这个东西完全是为了提醒你他们俩是可以绑定js对象的.…
序 CLR,通用语言运行时,每个.Net 程序猿,都会第一时间接触到.记得2008年,第一次学习Jeffrey Richter的CLR Via C#,读的懵懵懂懂,大抵因为编码太少,理解的只是概念和皮毛.10年之后,再次找出Jeffrey Richter的CLR Via C#这本书,重读CLR.归纳总结,同时加深自我的底层技术理解和深度.分享给大家自己的总结笔记: 讲在前面的话: 合抱之木,生于毫末:九层之台,起于垒土! 整个.Net 大厦建筑的底层基础技术就是CLR,通用语言运行时.CLR给我…
最近工作不是太忙,准备再读读一些源码,想来想去,还是先从JDK的源码读起吧,毕竟很久不去读了,很多东西都生疏了.当然,还是先从炙手可热的HashMap,每次读都会有一些收获.当然,JDK8对HashMap有一次优化 一.一些参数 我们首先看到的,应该是它的一些基本参数,这对于我们了解HashMap有一定的作用.他们分别是: 参数 说明 capacity 容量,默认为16,最大为2^30 loadFactor 加载因子,默认0.75 threshold resize的阈值,capacity * l…
问题 主流程上的区别 缓冲区的设计 内存管理的逻辑 音视频播放方式 音视频同步 seek的问题:缓冲区flush.播放时间显示.k帧间距大时定位不准问题- stop时怎么释放资源,是否切换到副线程? 网络不好时的处理,如获取frame速度慢于消耗速度时,如果不暂停,会一致卡顿,是否会主动暂停? VTB的解码和ffmpeg的解码怎么统一的?架构上怎么设计的? 数据流向 主流程更详细看ijkPlayer主流程分析 音频 av_read_frame packet_queue_put audio_thr…
最近仔细看了一下https://github.com/henkel/threadpool代码,总体感觉非常精巧,使用了 boost库的bind function完成了线程池与业务端的完全解耦:所有的任务最终都会被封装成为 function对象push进入队列. 这个库里面用了几个boost库里面的类,如recursive_mutex,reference_wrapper,thread等:有兴趣的 可以研究一下. 首先来说threadpool的结构: 之前在读这段代码的时候,worker中采用thr…
最近打算重新读windows程序设计这本书,这是我第二次读这本书,上一次读已经是七八年前的事情了.当初读的时候,刚刚接触windows开发不久,很多东西都不能够完全理解.这几天重新读了几章,发现收获不少,打算把这些收获写下来,方便自己查阅,同时也可以与大家分享交流.由于水平实在有限,难免有说的不正确的地方,欢迎大家拍砖指正,我将感激不尽,在此先谢过!…
工作的时候粗读过这本书的几章内容,真真是囫囵吞枣~~目前手边就剩这一本,重新读才觉得先前是没看明白啊!这个作者博闻强识,对这些插件.库了解的非常多.记录下,查的资料 订阅/发布 jQuery Tiny Pub/Sub 书中提及的库更新到这了 MDC Apply  Function.prototype.apply() Simple JavaScript Inheritance 书中提及的类继承中的库,特别短但不容易理解,下面博客园的同仁解释啦 理解John Resig's 'Simple Java…
最近在学习C Primer Plus.书中第66页,3.8 关键概念 这一小节中有这一段话: “计算机中的浮点数和整数在本质上不同,其存储方式和运算过程有很大区别.即使两个 32 位存储单元存储的位组合完全相同,但是一个解释为 float 类型,另一个解释为 long 类型,这两个相同的位组合表示的值也完全不同.例如,在 PC 中,假设一个位组合表示 float 类型的数 256.0,如果将其解释为 long 类型,得到的值是 113246208.C 语言允许编写混合数据类型的表达式,但是会进行…
The Star Arthur C. Clarke It is three thousand light-years to the Vatican. Once, I believed that space could have no power over faith, just as I believed that the heavens declared the glory of God's handiwork. Now I have seen that handiwork, and my f…
1.关于LoadIcon/LoadCursor,这两个函数,第一个参数为实例句柄,如果是从保存在磁盘中的可执行文件中加载资源,则需要则需要指定可执行文件的hInstance,如果是系统资源,该句柄为NULL. 2.关于窗口的Style,有的在窗口类中指定,有的在CreateWindow时指定,是因为有些参数是每个实例都不同的,因此需要在Create时指定. 3.进入消息循环前的UpdateWindow是给消息队列增加第一条WM_PAINT. 4.队列消息:按键消息(WM_KEYDOWN,WM_K…
1.ASCII,7位编码,共128个编码,1950年ansi提出. 2.变种的Ascii,0x40等10个代码保留各个国家单独使用,1967年由iso提出.旨在解决重音符号,英镑符号的问题. 3.扩展ASCII,增加到8位.有包括ibm的扩展字符集和windows支持的ansi字符集(ISO 8859-1) 扩展ascii引入代码页的概念,IBM字符集为437代码页或者msdos latin us,850代码页是msdos latin 1,类似ansi字符集,但是不同.所有代码页较低的128个字…
1.从程序员角度看,统一的界面意味着编程人员可以使用windows自带的例程来构建许多的功能,例如菜单,对话框等.只用几行代码就可以实现很多复杂的功能.但是这同时也增加了一些限制,使得做出一个个性化的ui会更加的困难. 2.windows是基于动态链接的,有三个基本的模块:user,gdi,kernel…
一年多以前就买了@Mrexcel的<让excel飞>这本书.整体思路是利用access结合excel,大幅度提高数据分析效率. 最近又拿出来看了看.第十五章,比高级筛选更“高级”,P241.主要讲述多表关联查询,可以适用于一对多的场景. P248:联接属性的三种类型. Union联合查询可以用来实现同表头的多表数据合并. 但是将数据倒回到excel时,发现老是报错. 提示错误信息如下:数据源中没有包含可见的表格. 后来发现原因和解决方法如下: 借助Access中的可视化查询设计器,可以很大程度…
并发编程,在哪个语言里都属于高端应用,一定得会了才好意思说懂了这门语言. 在工作中用得并不是很多,忘了一些内容,就慢慢看,慢慢补上. 今天一天看了近三分之一(我看外文越来越快了??:)), 实践一下多线程的threading模块. #coding: utf-8 import logging, threading from Queue import Queue logger = logging.getLogger() logger.setLevel(logging.DEBUG) formatter…
原则 1.找到原则中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起 2.针对接口编程,而不是针对实现编程 3.多用组合,少用继承 4.依赖倒置原则:要依赖抽象,不要依赖具体类(不能让高层组件依赖低层组件,而且,不管高层或者低层组件,“两者”都应该依赖于抽象) 模式 1.策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户 2.工厂方法模式:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个.工厂方法让类把实例化推迟到子…
1. https://www.wengbi.com/thread_88754_1.html (图) 2. https://blog.csdn.net/WZZ18191171661/article/details/79439212…
今天看了知乎@萧井陌的编程入门指南,想重温一下 <python简明教程>,对global的用法一直不太熟练,在此熟练一下,并实践一下python中list.tuple.set作为参数的区别. 在函数内部定义变量时,他们与函数外部具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是局部的,这称为变量的作用域,示例如下: def func_local(x): print 'x is', x x = 2 print 'Chanaged local x to',x x = 50 func_lo…
前面已经写到了第三章的数据类型 的那一部分 接下来是一些关于伪指令和其他杂七杂八的东西 1. 当前地址计数器:   $ 常用于  计算数组以及字符串的长度,如: .data list db ,,,,, listp db ($-list) ;代表的是数组元素所占内存空间的长度,也是一字为单元的数组的元素个数,;如要求元素大小为字,或双字,以及更大的数据类型则需要除以 type list 或者直接除以元素大小 2. 等号伪指令(=)与EQU和它的"小兄弟" TEXTEQU 区别:等号伪指令…