const

C++ const关键字

冷暖自知 提交于 2020-03-02 07:47:16
文章目录 基本用法 const与指针 const与引用 const 写在函数体{}前 基本用法 const用来声明一个常量,常量被初始化后它的值就固定了,不再允许修改: const int Month = 12 ; const与指针 const用于指针有三种形式: 让指针指向一个常量对象,防止指针修改所指向的值,例如: int age = 39 ; const int * pt = & age ; //声明指向常量的指针 上面的代码声明了一个指向 const int 类型的变量,因此不能用pt来修改该值,即*pt的值为const,不能被修改。 不能使用pt来修改age的值,但是可以直接修改age的值,因为age是常规变量,没有const修饰: * pt = 20 ; //错误 age = 20 ; //正确 对应const 修饰的变量来说只能赋值给“指向常量的指针”,不能赋值给常规指针: const float g_earth = 9.8 ; const float * pe = & g_earth ; //正确 float * pt = & g_earth ; //错误 声明指针本身为常量,防止改变指针所指向的位置 、 int sloth = 3 ; int * const finger = & sloth ; 上面的声明中finger只能指向sloth

ECMAScript 6教程 (一)

邮差的信 提交于 2020-03-02 07:22:12
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出 原文连接,博客地址为 http://www.cnblogs.com/jasonnode/ 。该系列课程是汇智网 整理编写的,课程地址为 http://www.hubwiz.com/course/5594e91ac086935f4a6fb8ef/ 什么是ES6?   ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了。Mozilla公司将在这个标准的基础上,推出JavaScript 2.0。   ECMAScript和JavaScript到底是什么关系?很多初学者会感到困惑,简单来说,ECMAScript是JavaScript语言的国际标准,JavaScript是ECMAScript的实现。   1996年11月,JavaScript的创造者Netscape公司,决定将JavaScript提交给国际标准化组织ECMA,希望这种语言能够成为国际标准。次年,ECMA发布262号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript。这个版本就是ECMAScript 1.0版。   ES6的目标,是使得JavaScript语言可以用来编写大型的复杂的应用程序,成为企业级开发语言。  

迷宫生成及深度优先搜索遍历迷宫(OpenGL)

安稳与你 提交于 2020-03-02 06:43:32
  其实以前就写过一个迷宫的程序和DFS遍历,不过弄丢了,前几天闲就重写了一下。欢迎交流和拍砖。有很多不足的地方也希望大家多指正。   迷宫生成的算法来自《计算机图形学》,也就是这本书:   生成迷宫的算法描述如下:   由于表示墙使用了up_wall和left_wall两个矩阵,所以格子的数量要比能显示出来的多一行一列,否则屏幕最下边和最右边是没有墙的。虽然可以后面画上,不过我选择这样。   对于迷宫的遍历使用DFS,另外由于使用了一个visited矩阵表示每个格子是否已经访问过,所以即使迷宫里存在环也没有任何影响,不会死循环。      另外当时不知道glutPostRedisplay()这玩意儿,所以很蠢的把遍历的过程设成了DisplayFunc来看遍历的过程。   生成迷宫及DFS遍历的代码如下: 1 #include <iostream> 2 #include <fstream> 3 #include <stack> 4 #include <GL/gl.h> 5 #include <GL/glu.h> 6 #include <GL/glut.h> 7 #include <cstdlib> 8 using namespace std; 9 10 /*Constant And Structures*/ 11 const int SCREEN_WIDTH = 1200; 12

Linux模块

二次信任 提交于 2020-03-02 04:50:53
一、为什么要使用模块 由于linux使用的是整体结构,不是模块化的结构,整体结构实现的操作系统可扩展性差。linux为了扩展系统,使用了模块的技术,模块能够从系统中动态装入和卸载,这样使得linux也具有很好的可扩展性。 二、linux中哪些代码作为模块实现,哪些直接编译进内核? 当然我们是尽量把代码编译成模块,这样就可以根据需要进行链接,内核的代码量也会少很多。几乎所有的高层组件—文件系统、设备驱动程序、可执行格式、网络层等等—都可以作为模块进行编译。 然而有些代码确必须直接编译进内核。这些代码通常是对数据结构或者函数进行修改。如内核中已经定义好了的数据结构,如果要改变这个数据结构,那么只有从新编译内核了。 三、管理模块 内核主要完成管理模块的两个任务。第一个任务是确保内核的其它部分可以访问该模块的全局符号,模块还必须知道全局符号在内核及其它模块中的地址。因此,在链接模块时,一定要解决模块间的引用关系。第二个任务是记录模块的使用情况,以便再其它模块或者内核的其它部分正在使用这个模块时,不能卸载这个模块。 四、模块使用的数据结构 每个模块都用一个module描述符描述,并且链接到一个以modules变量为链表头的双向循环链表中。 module描述符: struct module { enum module_state state; //模块内部状态 struct list_head

2020/3/1

风流意气都作罢 提交于 2020-03-02 04:11:45
cf+补题:4小时 复习c++第8章,并敲了相关代码熟悉:2小时 ///c++第八章 #include"stdio.h" #include"string.h" #include"iostream" #include"algorithm" using namespace std; ///inline表示该函数为内联函数,参数为引用参数 ///同时如果不想对函数参数的引用的值改变可将函数写为square1形式 ///此为work1引用的有关函数 inline int square(int &x) { int &z = x; return z = z * z; } inline int square1(const int &x) { /// int &z = x; ///此语句是错误的,同样在其中对x值进行改变也是错误的。 ///编译器将禁止其对x的值进行改变。 int z = x;///此可行 return x * z; } ///此为临时变量&的有关函数 inline void swapr1(int &a,int &b)///交换a,b值 { int temp = a; a = b; b = a; return ; } inline void swapr2(long long &a,long long &b) { long long temp = a; a = b; b = temp

IplImage 、cvMat 、Mat三者比较

半世苍凉 提交于 2020-03-02 03:42:10
IplImage, CvMat, Mat 的关系 opencv中常见的与图像操作有关的数据容器有Mat,cvMat和IplImage,这三种类型都可以代表和显示图像,但是,Mat类型侧重于计算,数学性较高,openCV对Mat类型的计算也进行了优化。而CvMat和IplImage类型更侧重于“图像”,opencv对其中的图像操作(缩放、单通道提取、图像阈值操作等)进行了优化。在opencv2.0之前,opencv是完全用C实现的,但是,IplImage类型与CvMat类型的关系类似于面向对象中的继承关系。实际上,CvMat之上还有一个更抽象的基类----CvArr,这在源代码中会常见。 1. IplImage opencv中的图像信息头,该结构体定义: typedef struct _IplImage { int nSize; /* IplImage大小 */ int ID; /* 版本 (=0)*/ int nChannels; /* 大多数OPENCV函数支持1,2,3 或 4 个通道 */ int alphaChannel; /* 被OpenCV忽略 */ int depth; /* 像素的位深度: IPL_DEPTH_8U, IPL_DEPTH_8S, IPL_DEPTH_16U, IPL_DEPTH_16S, IPL_DEPTH_32S, IPL_DEPTH_32F

Qt model/view理解2:添加代理-20151018更新理解

帅比萌擦擦* 提交于 2020-03-02 02:45:25
这是我对Qt的model/view内容理解的第二篇blog,在第一篇文章中,介绍QTableView和QAbstractTableModel,实现显示了对数据源的显示,但是显示的格式和修改的模式都是按照View控件的自显示方式。在此,使用Qt自带的QStyledItemDelegate类实现对特定行/列的显示/修改模式实现,实现过程中不出现对item的代码生成,对item的生成由程序自动完成。 在此同样以《c++ gui programming with Qt4》中的trackEditor例子作一讲解。 在此,我们首先应当考虑以下几个问题: 1)有一个代理类加到View中,处理特定的View内容。 2)代理类要完成以下几项工作:a)当用户修改数据时生成用户要求的控件(用户每次修改数据时在相应的位置都会生成控件,所以当控件用完后,应del释放资源)。b)设置在生成的修改控件中显示的内容。c)设置要写到model中的数据内容。d)设置当结束修改数据后,View显示的内容。 在此我们需要实现以下4个类。 /** @brief 保存显示数据的类。 */ class Track /** @brief 继承的委托类。 */ class TrackDelegate : public QStyledItemDelegate /** @brief 继承的模型类。 */ class

Qt model/view理解1--修改20151125

十年热恋 提交于 2020-03-02 02:11:53
在Qt中对数据处理主要有两种方式:1)直接对包含数据的的数据项item进行操作,这种方法简单、易操作,现实方式单一的缺点,特别是对于大数据或在不同位置重复出现的数据必须依次对其进行操作,如果现实方式改变,则在改动程序过程中还需对数据进行重新编码操作,费工费资源。2)采用model/view模型,将数据--模型--视图三者串起来,通过约定的接口保证数据的正确显示和显示方式的多样性,当需要重新调整显示时,只需修改视图,保证接口不变,即可以新view显示数据。 1/2两种处理数据方式: 在此,我主要介绍model/view模式,在此以QAbstractTableModel/QTableView为例。 如果是只读模式,model只要重写以下三个方法: //a方法:返回模型行数。 int rowCount(const QModelIndex &parent) const; //b方法:返回模型列数。 int columnCount(const QModelIndex &parent) const; //c方法:返回index项的role角色的数据。其中index项中可以有多个角色,每个角色都可以有一个数据。 QVariant data(const QModelIndex &index, int role) const; 如果用户要能够编辑数据(编辑模式),model还需要重写以下两个方法:

求圆的面积

佐手、 提交于 2020-03-02 00:18:48
//圆的面积 S =PI*R*R const double PI = 3.1415926;//常量使用const定义 常量名大写 Console.WriteLine("请输入圆的半径"); int r; r=int.Parse(Console.ReadLine()); double s = PI * r * r; Console.WriteLine(r + "的面积是:" + s); Console.ReadLine(); 来源: CSDN 作者: 白方圆 链接: https://blog.csdn.net/jacky__wang/article/details/104600375

nuxt使用scss变量配置

陌路散爱 提交于 2020-03-01 23:38:41
1、配置nuxt.config.js文件 const webpack = require( 'webpack' ); module.exports = { head: { title: 'project' , meta: [ { charset: 'utf-8' }, { name: 'viewport' , content: 'width=device-width, initial-scale=1' }, { hid: 'description' , name: 'description' , content: 'Nuxt.js project' } ] }, build: { extend(config,ctx){ const sassResourcesLoader = { loader: 'sass-resources-loader' , options: { resources: [ 'assets/cyc.scss' ] } } // 遍历nuxt定义的loader配置,向里面添加新的配置。 config.module.rules.forEach((rule) => { if (rule.test.toString() === '/\\.vue$/' ) { rule.options.loaders.sass.push(sassResourcesLoader) rule