C++ const的自我理解】的更多相关文章

C++学习笔记–const const 是 constant 的缩写,本意是不变的,不易改变的意思.在 C++ 中是用来修饰内置类型变量,自定义对象,成员函数,返回值,函数参数. C++ const 允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的.如果在编程中确实有某个值保持不变,就应该明确使用const,这样可以获得编译器的帮助. 引用菜鸟教程 常变量 const 类型名 变量名 = 初始化值; 必须要初始化 并且const定义的变量的值不能变,如图所示,…
Thread线程join方法自我理解 thread.join():等待thread线程运行终止,指的是main-thread(main线程)必须等待thread线程运行结束,才能继续thread.join();后面的代码 thread.join(long time):线程thread等待time时间之后,main-thread可以执行,注意time时间后,线程thread没有执行完,main-thread也可以运行 注意:上面2个方法必须在线程是alive的时候,才有这样的效果,否则不会有. j…
const关键字用来作甚?const是一个类型修饰符.常见的类型修饰符有哪些? short long unsigned signed static autoextern register 定义一个变量. (1)类型描述符中如果有多个关键字,他们出现的位置不影响对变量的限制. short int i; int short i; const int a; int const a;//上面两个是一样的. (2) const int *a; int* const a; int const* const…
定义中用到&是独立引用. 比如: char i; char &a=i; 表示a是i的一个单独引用. 当有i='a'时,也有a='a'; 当有a='c'时,也有i='c'; 两个变量的标示符都代表同一个内存空间地址. 声明中带有const时,表示为常量. 对const char* const &a=i从右读起 const &a表示a为常量,一开始要对其赋值,这里赋予i,表示a是i的一个单独引用.在以后的程序中,不能对a本身进行值的修改,即不允许有&a=othervar…
给出长度为m的文本 查询 n个单词出现的次数 用kmp 复杂度 n*m*(单词平均长度) 用字典树 复杂度 m*每次字典树遍历的平均深度) AC自动机 复杂度 m (思路可以理解为kmp+字典树 ) 正在学 代码没修改完 #include<bits/stdc++.h> using namespace std; ; ; struct node { node *fail; node *next[kind]; int cnt; node() { fail=NULL; cnt=; memset(nex…
1 . const char *ptr 从char *ptr 可以理解为指向字符常量的指针,ptr是一个指向char *的常量,*ptr的值为const,不能修改. 2. char const *ptr 同上 3. char * const ptr 定义一个指向字符的指针常数,不能修改指针,但可以修改指针指向的内容. 如char a a = 0x01; a = 0x02可以改变 &a指向的内容,但是&a不可以改变. 1和2 都是指针指向的值不可以改变,3是指针不可以改变.(地址不变-内容改…
首先描述一个事情,一个老师饿了,他要去买东西填饱肚子,然后他发现他的学生“小李”在玩,没学习,于是就委托“小李”去帮他买吃的. 根据这件事我们来分析: 首先得有个老师(老师饿了是他的方法,老师买东西也是他的方法),其次再有个学生(能接收老师发来的信息并存储,能去做事情,有名字). 于是我们就可以创建两个类: 老师类: public class Teacher { // 老师饿了,一般情况是老师自己去买吃的 public void Hungry1() { GoBuyEat("辣条");…
size_t  fread(void* buff,size_t size,size_t count,FILE* stream) 参数1:读取到该buff所指向的内存空间中 参数2:每次读取的字节数,单位是字节(单个元素的大小)(单字节数) 参数3:读取的次数(元素的个数)(数据项的个数) 参数4:目标文件指针 返回值:实际读取的元素个数.如果返回值与count不相同,则可能文件结尾或发生错误.从ferror和feof获取错误信息或检测是否到达文件结尾. size_t fwrite(const v…
android的active的生命周期,经过网站的blog学习,加上自己的理解总结如下: 第1种:全新的启动应用程序顺序 onCreate--->onStart---->onResume 第2种:应用程序按 Back 后执行的顺序 onPause --> onStop --> onDestroy 第3种:执行Back后再次进入程序的执行顺序 onCreate ---> onStart ---> onResume 第4种:按 Home 后执行的顺序 onPause ---…
本文借鉴网络上多位大牛的博客和文章.感谢各位不知名人士的分享. 一.什么事内部类? 内部类是指在一个外部类的内部再定义一个类.内部类作为外部类的成员,而且依附于外部类而存在的.内部类能够为静态,可用protected和private修饰(而外部类仅仅能使用public和缺省的包訪问权限). 内部类主要有下面几类:成员内部类.局部内部类.静态内部类和匿名内部类. 二.须要内部类? 典型的情况是.内部类继承自某个类或实现某个接口,内部类的代码操作创建其的外围类的对象.所以你能够觉得内部类提供了某种进…
String 的一些认识: String对象是不可变,所以使用 final 修饰 字符串拼接,合理利用 StringBuilder(线程非安全),StringBuffer 线程安全 常用方法就不详细介绍 ■构造函数 public final class String implements java.io.Serializable, Comparable<String>, CharSequence { 实现 java.io.Serializable 接口,支持序列化 实现Comparable 接…
$parsers 首先先了解下它具体的作用,当用户与控制器进行交互的时候.ngModelController中的$setViewValue()方法就会被调用,$parsers的数组中函数就会以流水线的形式被一一调用.第一个$parse被调用后在进行第二个$parse调用   这些函数可以对输入值进行转换,后者通过$setValidity()函数设置表达的合法性: 这个方法可以人为的设置一个表单控件的$valid 以及$ invalid, 也就是说改变表单控件是否通过校验的状态.类似的还有$set…
​详细代码理解可以参考 笨鸟教程博客:http://www.runoob.com/python3/python3-class.html 面向对象经常被提起,那到底什么是面向对象呢? 它的基本概念:类,对象.实例,属性,方法以及封装.继承.多态还有组合到底是什么呢? 对象可以是世间万物. 面向过程:它是以数据为中心,按照人的逻辑使用比如c语言代码 处理数据来完成任务的过程. 比如把大象放入冰箱内总共分三步: 第一步:打开冰箱门: 第二步:把大象放进冰箱: 第三部:关上冰箱门. 可以看出这个逻辑潜在…
S.O.L.I.D 是面向对象设计(OOD)和面向对象编程(OOP)中的几个重要编码原则(Programming Priciple)的首字母缩写.面向对象设计的原则SRP The Single Responsibility Principle 单一职责原则OCP The Open Closed Principle 开放封闭原则LSP The Liskov Substitution Principle 里氏替换原则ISP The Interface Segregation Principle 接口…
在AOP中有几个概念: - 方/切 面(Aspect):一个关注点的模块化,这个关注点实现可能另外横切多个对象.事务管理是J2EE应用中一个非常好的横切关注点样例. 方面用Spring的Advisor或拦截器实现. - 连接点/织入点(Joinpoint):程序运行过程中明白的点,如方法的调用或特定的异常被抛出.  - 通知(Advice):在特定的连接点,AOP框架运行的动作.各种类型的通知包含"around"."before"和"throws"…
类型:{ [key: string]: Function | { get: Function, set: Function } } 计算属性的结果会被缓存,除非依赖的响应式属性变化才会重新计算.注意,如果某个依赖 (比如非响应式属性) 在该实例范畴之外,则计算属性是不会被更新的. computed用来监控自己定义的变量,有data.props中的数据,该变量不在data里面声明,直接在computed里面定义,然后就可以在页面上进行展示出结果或者用作其他处理: computed比较适合对多个变量…
看effective c++第二版推荐使用const,少用define.今天才发现发现这远远不够. #define定义的常量在预处理替换,debug的时候无法打印宏的,这种常量设置是有缺陷的, const定义常量作用在编译时期,就是说编译器帮你检查有没有对const做修改,那么怎么实现一个运行时常量,目前c++中还没有提供改语法.所以const只是个协议.库提供者和使用者之间的协议,开发者和编译器的协议.所以有了const_static可以消除const的协议 开发者和编译器的协议: const…
因为项目中用到spi总线,网上看了下资料,总感觉云山雾罩的,就向身边的同事问了下,他给我解释了下, 我现在把自己理解的写下来 spi一共四条线,一条选择线,一条数据线,2条数据线.spi是一对多设备,选择哪个设备就把哪个设备的cs拉低,数据线呢,主进从出或主出从进,,spi采用主从方式工作,一个主设备,一个从设备.…
本章节主要讲的是web的工作原理,先大概熟悉记录一下,为以后写Django web框架打下基础. web工作原理: 1.用户从浏览器输入网址----->browser通过电脑中的网络设备(网卡)发出request请求(线路A) 2.网卡将request----->互联网(线路B) 3.互联网----->远端服务器(线路C) 4.远端服务器----->web应用程序接收request,python代码运行index.GET这个处理程序(handler)(线路D) 5.代码return…
一.索引 索引在MySQL中也叫'键'或者'key',是存储引擎用于快速找到记录的一种数据结构.索引对于良好的性能非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要,减少IO次数,加快查询. 索引的数据类型是b+树,要想理解b+树,最好先依次理解二叉树.平衡二叉树就比较好理解b+树了,所以索引查找数据是从数据块的左边开始匹配,再匹配右边的. 索引的分类: 普通索引(index):仅仅是加快查询速度 唯一索引(unique index):行上的值不能重复        主键索引(…
网上搜帖: clone()是java.lang.Object类的protected方法,实现clone方法: 1)类自身需要实现Cloneable接口 2)需重写clone()方法,最好设置修饰符modifier为public,以便跨包调用.   浅拷贝与深拷贝 1.浅复制与深复制概念⑴浅复制(浅克隆)被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象.换言之,浅复制仅仅复制所考虑的对象,而不 复制它所引用的对象. ⑵深复制(深克隆)被复制对象的所有变量都…
dijkstra该算法主要应用在求解最短路径,从最近点开始,广度搜索. 假设有向图中有10个顶点,求其中某个顶点a到其它顶点的最短路径..满足贪心算法的2个标准.时间复杂度为O(N2) 此问题可以进行分解.某个顶点a到到其他顶点c必定是从a直接到c 或者是从a到离a最近的顶点b,再到c. 算法思想: 初始化: d[] 已计算顶点集合      初始为原点a s[]  待计算顶点集合     初始为除了a外其他顶点 minlen[]  每次找到的最近点与其它点s[]的距离 过程: 从a点开始,遍历…
    很多时候我们在使用for循环遍历一个数组的时候,我们都知道可以通过下标的索引找到当前数组中所对应的数据.这只对于简单的数组或集合,如果我们存储的数据不止只有数据项,还有一个标识项,就如同Hashtable 和 Dictionary<key,value> 包含有key value键值对的时候,如果再去使用for循环就没有实际意义了.这种情况下就用到了foreach.有些博客上也有讲解到foreach实现的原理,foreach是被设计用来和可枚举类型一起使用.只要它的遍历对象是可枚举类型.…
当一个动态动态网页编写完成后是不能直接被别人通过浏览器访问的,要想访问此动态网页就必须让浏览器通过一段程序来访问此网页,这段程序就是服务器,他用来接受浏览器的请求,进行处理,将结果返回给浏览器. tomcat服务器就是诸多服务器中的一个,是开源免费的中小型servlet规范的web服务器,被广泛使用,在Tomcat官方站点可以免费下载到tomcat服务器(*.zip).下载下来以后解压后就可以使用(解压路径不要有中文和空格) 注意事项,要想正常启动tomcat必须在本机上配置一个JAVA_HOM…
1.String是基本数据类型吗? 不是,是对象,引用数据类型 2.String是可变吗? 不可变,String是final类型的. 3.怎样比较两个字符串的值相同,怎样比较两个字符串是否为同一对象? 比较值相同用equals,比较是否为统一对象用 == 4.switch中可以用String吗? 在jdk5中switch支持枚举,在7中支持String,但是通过反编译可以看出就是本质还是int,case后是hashcode,之后使用equals进行比较,所以String的效率会比较低 5.Str…
感谢博主:http://zy19982004.iteye.com/blog/1626916 这篇博文给予我线程知识很大的帮助 知识背景:(1)wait().notify()均是Object的方法,故每个对象都拥有这2个方法. (2)obj.wait.obj.notify必须在synchronized(obj){}代码块内部使用 (3)obj.wait会抛异常,obj.notify没有异常抛出 (4)2个线程同时运行,线程1执行到obj.wait()代码时,线程阻塞,释放对象锁:线程2拿到对象锁,…
今天学习node.js,相比于之前学习过的java,node.js有一些优越之处.原因是它是一个基于Chrome v8引擎建立的JavaScript运行平台. (1)创建服务器:自行服务器来监听客户端的请求,类似于 Apache .Nginx 等 HTTP 服务器. (2)前后台代码统一:都采用javascript,代表未来发展的趋势. (3)运行速度快,性能非常好:V8引擎执行Javascript的速度非常快,性能非常好.…
字符串   abcd abc abcd abc 匹配串   cdabcd 匹配串的 next  0 0 0 0 1 2: 开始匹配 abcd abc abcd abc cd abc d a,d 匹配失败 next 数组进行移动 abcd abc abcd abcd c dabcd 再次匹配 模板 这个算法有些问题(尚未找到修改方法) #include<bits/stdc++.h> using namespace std; ; ]; // next 数组首位为 0 int KMP(string…
[场景] 当在更新数据的时候,发现更新的值写错了,这时就需要将已经更新的地方恢复到原始数据. [基本概念] 在更新的过程中,Oracle会将原始的数据都放入到UNDO里,这样当以上情况发生后,就可以从UNDO中拿到原本的数据了. UNDO是在Oracle 11g被提出的,由UNDO tablespace进行管理,常用“撤销段”说明,用于进行撤销操作 ROLLBACK是在Oracle 9i出现的,存在于system表空间,常用“回滚段”说明,用于进行回滚操作 [区分] -- 相同点: 撤销段与回滚…
暂时不考虑ES6中symbol,hasOwnProperty()方法返回的是一个对象上是否包含一个指定属性,如果含有则返回true,如果没有则返回false.   和 in 运算符不同,该方法会忽略掉那些从原型链上继承到的属性.这一特性尝尝用来检测一个对象上是否包含自身拥有的属性,并且不是从原型链上继承而来的. 如: o = new Object(); o.prop = 'exists'; function changeO() { o.newprop = o.prop; delete o.pro…