初始化

C++面试

泪湿孤枕 提交于 2020-02-02 14:31:08
vector中v[i]和v.at(i)的区别 v[5]; //A v.at[5]; //B 如果v非空,A和B没有任何区别。如果v为空,B会抛出std::out_of_range异常。 c++标准不要求vecor<T>::operator[]进行下标越界检查,原因是为了提高效率。如果需要下标越界检查,使用at。但性能会受到影响,因为越界检查增加了性能开销。 vector扩容原理 新增元素:vector通过一个连续的数组存放元素,如果集合已满,在新增数据的时候,就要分配一块更大的内存,将原来的数据复制过来,释放之前的内存,在插入新增的元素; 对vector的任何操作,一旦引起空间重新配置,指向原vector的所有迭代器就都失效了; 初始时刻vector的capacity为0,塞入第一个元素后capacity增加为1; 不同的编译器实现的扩容方式不一样,VS2015中以1.5倍扩容,GCC以2倍扩容 哪些函数不能成为虚函数? 不能被继承的函数和不能被重写的函数。 1.普通函数 2.友元函数 3.构造函数 4.内联成员函数 5.静态成员函数 溢出 1.栈溢出(栈的大小通常是1M-2M) 栈溢出是指函数中的局部变量造成的溢出(注:函数中形参和函数中的局部变量存放在栈上) 栈溢出包含两种情况:1.分配的的大小超过栈的最大值,2.分配的大小没有超过最大值,但是分配的buff比接收buff小

类和结构的区别

时光怂恿深爱的人放手 提交于 2020-02-02 12:15:19
区别如下: 1.存储类型: 结构是值类型 ,存储在栈上。 类是引用类型 ,存储在栈上和堆上,堆上存储真实数据,栈上存储存储地址,修改一个引用的值,另一个相同的引用的值就会发生改变。 2.继承性: 类是可以继承的 ,它可以继承其他的类或者接口,也可以 被继承 ,并且,类的许多特性是通过继承来展现的,要 阻止类的继承 , 必须显示的声明sealed 。 结构没有继承 :它不能继承另一个结构或者类,也不能被继承。也正因为如此, 结构不能有抽象成员 。虽然结构没有明确的用sealed声明,可是结构是隐式的。结构能够继承接口,方法和类继承接口是一样的 3.初始化:类可以在声明的时候初始化,结构不能在申明的时候初始化(不能在结构中初始化字段),否则报错。 4.构造函数:类和结构都有自己默认的构造函数。在类中,一旦我们编写了带参数构造函数,默认构造函数就不存在了。当我们要调用不带参数的构造函数来初始化对象时,我们必须再自己编写一个不带参数的构造函数。但是在 结构中,始终存在一个不带参数的默认构造函数 ,并且,这个构造函数是不可替代的,不能重写,也不能覆盖, 在结构中,我们只能编写带参数的构造函数,不能编写不带参数的构造函数 5.析构函数: 类有析构函数,但是结构没有析构函数 6.关键字:在类中可以使用但是在结构中限制使用的关键字有:abstract、sealed、protected

教你如何用python和pygame制作一个简单的贪食蛇游戏,可自定义

风流意气都作罢 提交于 2020-02-02 09:54:30
1.效果图 2.完整的代码 #第1步:导出模块 import pygame, sys, random from pygame.locals import * # 第2步:定义颜色变量,在pygame中采用的color是三色原RGB的数值法 # 目标方块儿红颜色 redColor = pygame.Color(255, 0, 0) # 背景颜色为黑色 pinkColor = pygame.Color(255, 192, 203) #黑色:0,0,0 #粉红色=pink=(255, 192, 203) # 蛇颜色为白色 whiteColor = pygame.Color(255, 255, 255) # 第3步:定义游戏结束 def gameOver(): pygame.quit() sys.exit() # 第4步:定义main函数 定义入口函数 def main(): # 初始化pygame,很关键 pygame.init() # 定义一个变量 控制速度 fpsClock = pygame.time.Clock() # 创建一个窗口界面及大小 playSurface = pygame.display.set_mode((640, 480)) pygame.display.set_caption('<-自定义贪吃蛇->DIY') #游戏标题 # 初始化目标方块的位置

svn访问版本库时一直提示: please wait while the repository browser is initializing

大兔子大兔子 提交于 2020-02-02 09:24:11
最近不知道做了什么操作,原来正常的SVN Check In/Out都无法正常操作。 正常Check In的动作,几秒钟就会操作完成,但是我却等了好久好久,然后提示Connection timed out. 一开始怀疑是SVN Client的版本问题,直接升级到最新版,还是无法解决。 再来怀疑是网络问题,甚至看到有人讲到无线网络的MTU值不匹配也会引起此问题,结果也是无解。 再后来,我用Windows切换到另一种用户使用SVN时,给了我思路,因为用另一个用户是可以正常开户SVN的,只是要做一些初始化配置即可, 因此,我切到原来异常的用户环境下,将以下两个目录全部删除 C:\Users\****\AppData\Roaming\TortoiseSVN C:\Users\****\AppData\Roaming\Subversion 删除后再进SVN时,这时也提示我要初始化配置,如下图,配完后就正常了。 来源: https://www.cnblogs.com/dimg/p/11083035.html

13.6 模拟事件

大城市里の小女人 提交于 2020-02-02 08:41:37
在 document 对象上调用 document.createEvent() 方法创建 event 对象,接收一个参数,要创建的事件的字符串 参数 说明 UIEvents UI 事件,DOM3中是UIEvent MouseEvents 鼠标事件,DOM3中是MouseEvent MutationEvents DOM 变动事件,DOM3中是MutationEvent HTMLEvents HTML 事件,没有对应的 DOM3级事件 创建对象-初始化-触发事件(dispatchEvent方法) 一、DOM 中的事件模拟 1.模拟鼠标事件 var btn = document . getElementById ( 'myBtn' ) ; var event = document . createEvent ( 'MouseEvents' ) ; //创建鼠标事件 event . initMouseEvent ( 'click' , true , true , document . defaultView , 0 , 0 , 0 , 0 , 0 , false , false , false , false , 0 , null ) ; //初始化鼠标事件 btn . dispatchEvent ( event ) ; //触发事件 模拟鼠标事件的初始化方法为

CI中SESSION的用法及其注意

荒凉一梦 提交于 2020-02-02 03:18:52
销毁 Session 要清除当前 session: $this->session->sess_destroy(); 注意: 此函数应该是最后被调用的。即使闪出变量已不再有效。如果你只想让某几项而不是所有项被销毁,请使用 unset_userdata(). Session 类 Session类可以使用户在浏览您的网站时,维持他们的状态并跟踪他们的行为。 Session类将每个用户的session信息序列化(serialize)后存储到到cookie中(并同时进行加密)。您还可以将session数据存储到 数据库 中来增强安全性,但是这时要求存储在用户cookie中的session ID值能与数据库中存储的用户session ID值相匹配。程序默认只在cookie中存储session。如果您在要在数据库中存储session的话,需要按照下面指示的方法,在您的数据库中创建需要的数据表。 注意: Session类并不使用PHP本身的session,而是使用类自己的session,这样做,可以给开发者提供更大的弹性。 初始化 Session Sessions会在每个页面载入后开始运行,所以session类必须首先被初始化。您可以在控制器中初始化,也可以在系统中自动加载(译者注:在autoload.php设定)。session类的绝大部分都会在后台运行,所以初始化session时

c++数组初始化误区

拥有回忆 提交于 2020-02-02 03:05:20
看下面的一段代码: int statusArr[100] = {1} 能达到全都初始化为1的结果么? 结果是只有第一个元素初始化了为1,其他都是0. 之前经常写 int a[100]= {0} 这么写可以,为什么? 因为c++有个基本的语法规则,数组初始化列表中的元素个数小于指定的数组长度时,不足的元素补以默认值。当我们写0没有问题因为恰好0是int的默认值罢了。 string a[5] = { "foo", "", "", "", "" }; 即后面4个元素调用了string的默认构造函数进行的初始化,而第一个则调用的string::string(const char*)进行的初始化。 还有一个区别: int a[5]; string a[5]; 如果不明确指出初始化列表,那么基本类型是不会被初始化的(除全局变量和静态变量外),所有的内存都是“脏的”;而类类型则会为每个元素调用默认构造函数进行初始化。 注意,在C++11中中间的赋值号可以省略,即 int a[5]{1}; 并且,如果初始化列表为空,如 int a[5]{};,那将初始化所有元素为默认值,即与 int a[5]{0}; 等价 所以当你想在c++对数组赋初值时用正规方法memset.另外注意memset函数原型虽然是: void *memset(void *s, int ch, size_t n);

c#中结构与类的区别

天涯浪子 提交于 2020-02-02 02:02:08
一.类与结构的示例比较:   结构示例:   public struct Person   {   string Name;   int height;   int weight   public bool overWeight()   {   //implement something   }   }   类示例:   public class TestTime   {   int hours;   int minutes;   int seconds;   public void passtime()   {   //implementation of behavior   }   }   调用过程:   public class Test   {   public static ovid Main   {   Person Myperson=new Person //声明结构   TestTime Mytime=New TestTime //声明类   }   }   从上面的例子中我们可以看到,类的声明和结构的声明非常类似,只是限定符后面是 struct 还是 class 的区别,而且使用时,定义新的结构和定义新的类的方法也非常类似。那么类和结构的具体区别是什么呢?   二 .类与结构的差别   1.值类型与引用类型   结构是值类型:值类型在堆栈上分配地址

类与结构的差别

谁说胖子不能爱 提交于 2020-02-02 01:57:10
二 .类与结构的差别 1. 值类型与引用类型 结构是值类型:值类型在堆栈上分配地址,所有的基类型都是结构类型,例如:int 对应System.int32 结构,string 对应 system.string 结构 ,通过使用结构可以创建更多的值类型 类是引用类型:引用类型在堆上分配地址 堆栈的执行效率要比堆的执行效率高,可是堆栈的资源有限,不适合处理大的逻辑复杂的对象。所以结构处理作为基类型对待的小对象,而类处理某个商业逻辑 因为结构是值类型所以结构之间的赋值可以创建新的结构,而类是引用类型,类之间的赋值只是复制引用 注: 1.虽然结构与类的类型不一样,可是他们的基类型都是对象(object),c#中所有类型的基类型都是object 2.虽然结构的初始化也使用了New 操作符可是结构对象依然分配在堆栈上而不是堆上,如果不使用“新建”(new),那么在初始化所有字段之前,字段将保持未赋值状态,且对象不可用 2.继承性 结构:不能从另外一个结构或者类继承,本身也不能被继承,虽然结构没有明确的用sealed声明,可是结构是隐式的sealed . 类:完全可扩展的,除非显示的声明sealed 否则类可以继承其他类和接口,自身也能被继承 注:虽然结构不能被继承 可是结构能够继承接口,方法和类继承接口一样 例如:结构实现接口 interface IImage { void Paint(); }

不使用配置文件动态注册HttpModule

痞子三分冷 提交于 2020-02-02 00:07:27
在asp.net 4.0中,提供了一种不通过修改配置文件注册Module的方法。从.net3.5开始,新提供的PreApplicationStartMethodAttribute特性可以应用在程序集上,使得自定义的网站初始化代码可以在web应用程序的Application_Start初始化环节之前就执行。这个步骤甚至在动态编译和执行Application_Start之前。对于每个程序集,可以定义一次,PreApplicationStartMethodAttribute定义如下: #region Assembly System.Web.dll, v4.0.0.0 // C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Web.dll #endregion using System; namespace System.Web { // Summary: // Provides expanded support for application startup. [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] public sealed class