C++
天才辅助
厚积薄发
展开
-
字符串替换
问题描述:(去哪网)请你实现一个简单的字符串替换函数。原串中需要替换的占位符为"%s",请按照参数列表的顺序一一替换占位符。若参数列表的字符数大于占位符个数。则将剩下的参数字符添加到字符串的结尾。给定一个字符串A,同时给定它的长度n及参数字符数组arg,请返回替换后的字符串。保证参数个数大于等于占位符个数。保证原串由大小写英文字母组成,同时长度小于等于500。测试样例:原创 2017-06-04 20:07:49 · 373 阅读 · 0 评论 -
乘坐公交车
从小明家所在公交站出发有n路公交到公司,现给出每路公交的停站数(不包括起点和终点),及每次停的时间(一路车在每个站停的时间相同)和发车的间隔,先假定每辆车同时在相对时间0分开始发车,且所有车在相邻两个站之间的耗时相同,都为5分钟。给定小明起床的相对时间(相对0的分钟数),请计算他最早到达公司的相对时间。给定每路车的停站数stops,停站时间period,发车间隔interval及公交路数n原创 2017-06-04 21:28:23 · 285 阅读 · 0 评论 -
对象被使用之前先被初始化--定义于不同编译单元内的non-local tatic对象
涉及到至少两个源码文件,每一个至少一个non-local static对象。真正的问题是:如果某个编译单元内的某个non-local static对象的初始化动作使用了另一个编译单元内的某个non-local static对象,它所用到的这个对象可能尚未初始化,因为C++对定义于不同编译单元内的non-local static对象的初始化次序并无明确定义。假设你有一个FileSystem cl原创 2017-06-19 09:48:38 · 265 阅读 · 0 评论 -
C++ 新特性 关于类1
1.使用=default生成默认构造函数在C++11新标准中,如果我们需要默认的行为,那么可以通过在参数列表后面写上=default来要求编译器生成构造函数。其中,=default既可以和声明一起出现在类的内部,也可以作为定义出现在类的外部。和其他函数一样,如果=default在类的内部,则默认的构造函数是内联的;如果它在类的外部,则该成员默认情况下不是内联的。2.默认初始化如果内置类原创 2017-06-23 08:09:46 · 219 阅读 · 0 评论 -
关于C++面试--转载自牛客网
1,分别给出bool,int,float,指针变量与灵芝比较的if语句,假设变量时var.bool类型变量 if(!var)int类型变量 if(var==0)float类型变量const float EPSINON=0.00001;if((x>=-EPSINON)&&s指针变量 if(var==NULL)考察对0值判断的内功,BOOL类型变量的0值判断完全可以写成if转载 2017-06-11 10:50:39 · 488 阅读 · 0 评论 -
面试题1
1如何定义一个只能在堆上(栈上)生成的对象类在C++中,类的对象建立分为2种,一种是静态建立,如A a;另外一种是动态建立 如A* a=new A();这两种方式是由区别的;静态建立一个类对象,是由编译器为对象在栈空间中分配内存,是通过直接移动栈顶指针,挪出适当的空间,在这片内存空间上调用构造函数形成一个栈对象。使用这种方法直接调用类的构造函数。动态建立类对象,是使用new运算符将对象转载 2017-06-26 08:52:46 · 183 阅读 · 0 评论 -
九章算法--面试
简述C++虚函数作用及其底层实现原理要点是要回答出虚函数表和虚函数表指针的作用。C++中虚函数使用虚函数表和虚函数指针实现,虚函数表是一个类的虚函数的地址表,用于索引类本身以及父类的虚函数的地址,假如子类的虚函数重写了父类的虚函数,则对应在虚函数表中会把对应的虚函数替换为子类的虚函数的地址;虚函数表指针存在于每个对象中(通常出于效率考虑,会放在对象的开始地址处),它指向对象所在类的虚函数表的地转载 2017-07-23 13:40:04 · 687 阅读 · 0 评论 -
关于C++面试(2)
1 分析下面代码有什么问题void test2(){ char string[10],str1[10]; int i; for(i=0;i<10;i++) str1='a'; strcpy(string,str1);}解答:首先,代码根本不能通过编译。因为数组名str1是char* const类型的右值类型,根本不能赋值。再者,即使相对数转载 2017-07-26 10:20:47 · 258 阅读 · 0 评论 -
关于C++面试3
1,STL中vector的实现原理vector的数据安排和以及操作方式,与array非常类似,唯一的相同点是空间运用的灵活性。array是静态空间,一旦配置了就不能改变,要是需要更大的内存空间的话,需要用户自己申请一个新的空间,将元素从原来的旧地址转移到新地址,最后释放原来的存储空间。vector是动态空间,随着元素的增加,它的内部机制会自行的扩充内存空间以容纳新的元素。因此vector的运用转载 2017-07-16 15:42:36 · 152 阅读 · 0 评论