顶层const和底层const
最近一直在看《C++ Primer》,于是对书中的部分内容做了总结。
顶层const和底层const的概念顶层const(top-level const):表示指针本身是一个常量。 底层const(low-level const):表示指针所指的对象是一个常量。
举个例子:12345678910int i=0;int *const p1=&i; //顶层const,p1的值不能改变const int ci=1; //顶层const,ci的值不能改变const int *p2=&ci; //底层const,p2的值可以改变const int *const p3=p2; //靠右的为常量指针,顶层const,靠左的为底层const,所以p3既是顶层const,又是底层const
个人总结:
用于声明变量和作为const指针的为顶层const
用于声明引用和指针的为底层const
在执行对象的拷贝操作时,顶层const不受影响。
当一个对象既是顶层const,又是底层const,拷贝时必须清楚它指向的对象必须是常量。
如何将你的闲置iPad作为笔记本扩展屏
最近刚好在家找到了我的一部老旧的iPad mini,想想可以废物利用,将它作为我的笔记本的扩展屏。这次便在App Store找到了一款软件XDisplay,相较于Duet display,这是一款免费的应用,使用下来,流畅度和清晰度本人还可以接受(b站网页视频可以流畅播放)。网上有人说,会占用笔记本的cpu,在我的使用下,大概只占用100多MB,不影响电脑的使用。
如何安装:安卓和win版本:XDisplay官网 iOS版本:在APP store搜索XDisplay即可
如何使用:win10系统(需提前安装XDisplay的win10版本)如果使用iPad作为拓展屏,软件会自动提示安装iTunes,安装完毕后,打开iPad上的XDisplay应用,用数据线连接到电脑,软件会自动连接。
使用效果:
C/C++静态存储区、动态存储区、代码区在内存的存储位置
相关问题:1. 运行一个C++程序,系统会为程序安排哪几片存储区域?分别存放什么?
静态区(全局区):存放静态变量(包括静态数据成员);
栈:存放局部非静态变量、函数的形式参数;
程序区:存放机器语言的程序代码;
堆:系统掌握的未分配的内存区。用于存放动态分配的对象, 当你使用 _malloc_和_new_等进行分配时,所得到的空间就在堆中。动态分配得到的内存区域附带有分配信息, 所以你能够 free和delete它们。
注:形参是变量,发生函数调用时在栈中安排这些变量的存储空间。
2. 例题:画出如下程序运行到return之前的内存图,图中要表示出各个变量、对象以及main函数的位置。
答案:
程序的运行过程说明:
从EXE文件中把机器语言代码调入内存的程序区
x是全局变量,随着程序被调进内存就安排了内存空间,在静态区,并以2000、1、2为实际参数调用构造函数,初始化x的各个数据成员
系统调用main,这是每个C++程序的必有步骤
进入main内部
创建局部对象y,在动态区,并以1988、3、4为实际参数调用构造函数,初始化y
安排局部变量q, ...
Vbox的扩展包安装不上的问题
今天使用Vbox时候发现有更新,便点击上面的链接进行手动更新(鉴于国内的网络环境,毕竟自动更新太慢了),但是安装后发现官网下午extends pack死活安装不上,一直弹出VERR_SYMBOL_NOT_FOUND - GetLastError=127.,便在网上进行搜索,试过好多种方法,比如设置ExtendsionPacks路径和VBoxExtPackHelperApp.exe的everyone的权限,发现还是无法安装。 然后突然发现我的Vbox是安装的6.0.2版本的,为啥我在官网下载的包,版本还倒退了(一开始没有注意),于是重新下载了6.1.6的包安装后,扩展包正常安装。
Java编写简易记事本
一、设计思路:本项目是基于java和maven项目对象模型的记事本程序,本程序共分为文件操作类GuiMenu.class和记事本启动类App.class两个类。文件操作类主要负责软件的图形化界面显示和文件的操作,记事本启动类作为入口函数,主要负责程序的运行。 文件操作类通过java.awt类和javax.swing类来建立软件的图形窗口,JMenuItem的setActionCommand方法给每一个按钮设置一个字符串,并在最后的equals方法来比较字符串,判定用户所选择的功能,通过InputStream和OutputStream来建立输入输出流,并使用try-catch来捕捉异常。
二、使用的接口及方法:JFileChooser类:
JButton类 JMenuItem类 Container类 JToolBar类 ActionListener接口:
体现面向对象的地方:继承: 封装: 使用了private修饰符对数据成员进行访问控制。
代码:1.文件操作类:12345678910111213141516171819202122232425262728293031323 ...
Wordpress博客增加友链页面内页
今天刚刚更新了wordpress博客的Kratos3.0.7主题,突然发现之前博客友链的单独页面功能消失了,于是就来折腾一下给主题增加友链内页,便于友链的管理.
找到所使用主题的的页面模板文件page.php的<?php the_content(); ?>语句前面加入 1234567891011121314151617<div class="linkpage"> <hr/> <ul><?php $bookmarks = get_bookmarks(array('orderby'=>'rand')); if(!empty($bookmarks)){ foreach($bookmarks as $bookmark){ $friendimg = $bookmark->link_image; if(empty($friendimg)){ ...
Java入门笔记之用IO流实现简单的学生管理系统
运用Java IO流知识自己搭建学生管理系统 主要想法:实现学生管理的增删改查的基本操作,用IO流的BufferedWrite实现将list保存到硬盘,并在程序重新运行时读取。
用户操作界面:123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172import Settings.*;import Exception.MyException;import java.util.Scanner;public class Main { public static void main(String[] args) { try { FileOperate fo = new FileOperate(); while (true) { Menu.showMe ...
动态规划之凸多边形最优三角形剖分
题目来源:中国石油大学ACM俱乐部开放训练题
题目介绍:众所周知,sciorz会画画。某天,sciorz画了一个凸多边形,这个多边形的每个顶点有一个权值a[i]。sciorz觉得这个凸多边形不够美丽,于是他决定在n个点之间连线,最终用n-3条不相交的线将这个凸多边形分隔成n-2个三角形。sciorz认为,一个三角形的美丽值是三个顶点权值的乘积,凸多边形的美丽值是其内部三角形美丽值之和。sciorz想到了一种分割方案,使这个凸多边形的美丽值最大,sciorz忙着刷题,所以他随手就把这个签到题扔给你,希望你帮sciorz算出最大的美丽值。
输入:第一行一个t,表示有t组样例。 每组样例的第一行是一个n,表示多边形的边数。 第二行n’个数,第i个数表示多边形第i个顶点的权值a[i],按逆时针方向给出。
输出:对于每组样例,输出一行。格式为“Case #x:y”,x为样例编号,y为答案。
样例输入:2 3 1 2 3 4 1 2 3 4
样例输出:Case #1:6 Case #2:32
原理:dp[i][j]表示从i到j的最优剖分方案,其中,当j=i或j=i+1时无法构成三角形;当j> ...
算法入门笔记之深度优先搜索(DFS)
深度搜索的概念:搜索连通图的经典递归算法(遍历所有的顶点和边)和Tremaux搜索类似,但描述起来更简单。 要搜索一幅图,只需用一个递归方法来遍历所有顶点。在访问其中一个顶点时:
将它标记为已访问;
递归地访问它的所有没有被标记过的邻居顶点。
Search API 的一种实现使用了这种方法,它使用一个 boolean 数组来记录和起点连通的所有顶点。递归方法会标记给定的顶点并调用自己来访问该顶点的相邻顶点列表中所有没有被标记过的顶点。如果图是连通的,每个邻接链表中的元素都会被检查到。 用深度优先算法求两点之间的最短路径:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263import java.util.Scanner;public class dfs { public static int min=99999;//存储最短路径 public static int ...
WP-Optimize的缓存功能导致网站出现乱码
最近把wordpress博客换了个群里大佬的开源主题Kratos,并使用了WP-Optimize插件的preload的页面缓存功能,发现我的网站总是会在标签和分类目录上面出现一堆中文乱码,我先以为是mysql字符集的问题,便按照网上的教程将服务器字符集修改成和wordpress数据库一样的类型,utf8mb4,但是事情还是没有得到解决,直到我把preload功能关闭才恢复正常,小缺点是网站加载速度稍稍变慢了一点点。 网上还有中解决方法是说缓存插件开启了gzip,和wordpress自带的gzip压缩重复了,导致重复压缩出现乱码,由于我的gzip压缩只开了系统的,导致此方法也用不上。