C++面试习题
小麦大大
写写代码纪录生活
展开
-
重载、隐藏(覆盖)和重写的区别?
C++原创 2022-07-22 15:23:44 · 183 阅读 · 0 评论 -
秒数转换为天,小时,分钟,秒的公式
秒数转换公式int time;int second=time%60;int minute=time%3600/60;int hour=time%(24x3600)/3600;int day=time/(24x3600);翻译 2020-10-28 14:56:43 · 12338 阅读 · 0 评论 -
C++单例模式
单例模式作用单例模式也称为单件模式、单子模式,是使用最广泛的设计模式之一。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。单例模式通过类本身来管理其唯一实例,这种特性提供了解决问题的方法。唯一的实例是类的一个普通对象,但设计这个类时,让它只能创建一个实例并提供对此实例的全局访问。唯一实例类Singleton在静态成员函数中隐藏创建实例的操作。习惯上把这...原创 2020-03-30 11:20:40 · 198 阅读 · 0 评论 -
去除空格面试题
时间复杂度降为O(n)#include <iostream>#include <string>using namespace std;char* delSpace(char * str){ char *p = str; // p和t在指向同一地方 char *t = p; char *temp = p;//保存首地址 while(*p!='\0') ...翻译 2018-12-16 01:31:13 · 157 阅读 · 0 评论 -
引用计数(面试题)
3月1号笔试唯一一道没写的面试题。问了引用计数。在这边做一个小总结。一、本节内容对标准库的扩充: 智能指针和引用计数 RAII 与引用计数std::shared_ptrstd::unique_ptrstd::weak_ptr二、本节内容引用计数这种计数是为了防止内存泄露而产生的。基本想法是对于动态分配的对象,进行引用计数,每当增加一次对同一个对象的引用,那么引用对象的引用计数...转载 2019-03-01 17:27:59 · 2042 阅读 · 0 评论 -
海量数据处理
一、计算容量1个整数占4byte,1亿个整数占4*10^8byte 大概为 400 MB;二、拆分可以将海量数据拆分到多台机器上和拆分到多个文件上:如果数据量很大,无法放在一台机器上,就将数据拆分到多台机器上。这种方式可以让多台机器一起合作,从而使得问题的求解更加快速。但是也会导致系统更加复杂,而且需要考虑系统故障等问题;如果在程序运行时无法直接加载一个大文件到内存中,就将大文件拆分...转载 2019-04-02 19:14:55 · 287 阅读 · 0 评论 -
vector清空内存的2种方法
#include <iostream>#include <vector>using namespace std;int main(){ vector<int> myvector; for (int i = 0; i < 100; i++) { myvector.push_bac...原创 2019-04-18 16:45:18 · 2436 阅读 · 1 评论 -
sizeof和strlen的比较
sizeof和strlen的比较例子一、#include <iostream>#include <string.h>using namespace std;typedef struct Stu{ int i; int j; char k;}MyStu;int main(){ char arr[20]="hello world!"; cou...原创 2019-04-18 17:55:31 · 479 阅读 · 0 评论 -
牛客C++基础第一篇
● 说一下static关键字的作用参考回答:全局静态变量在全局变量前加上关键字static,全局变量就定义成一个全局静态变量.静态存储区,在整个程序运行期间一直存在。初始化:未经初始化的全局静态变量会被自动初始化为0(自动对象的值是任意的,除非他被显式初始化);作用域:全局静态变量在声明他的文件之外是不可见的,准确地说是从定义之处开始,到文件结尾。局部静态变量在局部变...翻译 2019-04-24 20:46:57 · 582 阅读 · 0 评论 -
虚析构函数、虚函数考题
虚析构函数、虚函数结合考题变种1.[Effective C++原则07]:为多态基类声明virtual 析构函数。[如果不]: 如果不声明为析构函数,可能出现的结果如下:Derived对象的成分没有被销毁,形成资源泄露、在调试上会浪费很长时间。#include <iostream>using namespace std;class CSimpleClass{publ...翻译 2018-10-30 11:07:30 · 317 阅读 · 0 评论 -
四种不同对象的生存方式(栈、堆、全局、局部静态)
例题1:class Sample{ int x;public: Sample(int a) { x = a; cout << "constructing object: x =" << x << endl; }}; void func(int...翻译 2018-10-30 10:16:16 · 185 阅读 · 0 评论 -
sprinf和strcpy和memcpy
sprinf和strcpy和memcpy这些函数的区别在于 实现功能 以及 操作对象 不同。strcpy 函数操作的对象是 字符串,完成 从 **源字符串** 到 **目的字符串** 的 **拷贝** 功能。snprintf函数操作的对象 不限于字符串:虽然目的对象是字符串,但是源对象可以是字符串、也可以是任意基本类型的数据。**这个函数主要用来实现 (字符串或基本数据类型)向 字符串 的...原创 2018-09-24 14:00:23 · 198 阅读 · 0 评论 -
回文判断
回文判断回文,英文palindrome,指一个顺着读和反过来读都一样的字符串,比如madam、我爱我,这样的短句在智力性、趣味性和艺术性上都颇有特色,中国历史上还有很多有趣的回文诗。 那么,我们的第一个问题就是:判断一个字串是否是回文? bool IsPalindrome(const char *s, int n) { // 非法输入 i...原创 2018-08-27 07:31:10 · 244 阅读 · 0 评论 -
百度重点面试题
C/C++程序的内存分区1)、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2)、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。 3)、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化...翻译 2018-08-27 07:32:26 · 1335 阅读 · 0 评论 -
找出数组中第二大的数
//初始化最大值为a[0],次大值为a[1],遍历一次,每次比较并更新最大值和次大值,最后就可以得到次大值。 int findsecondmaxvalue(int *a,int size) { int max = a[0]; //最大值 int second = a[1]; ...原创 2018-08-24 22:46:57 · 807 阅读 · 0 评论 -
C/C++ 笔试(一)
1.求下面函数的返回值( 微软)int func(x) { int countx =0; while(x) { countx ++; x = x&(x-1); } return countx; }答案:假定x = 9999。 答案:8思路:将x转化为2进制,看含有的1的个数。...翻译 2018-08-24 23:49:58 · 413 阅读 · 0 评论 -
C/C++笔试(二)
延续上一篇继续翻译16. 关联、聚合(Aggregation)以及组合(Composition)的区别?涉及到UML中的一些概念: 关联是表示两个类的一般性联系,比如“学生”和“老师”就是一种关联关系; 聚合表示has-a的关系,是一种相对松散的关系,聚合类不需要对被聚合类负责,如下图所示,用空的菱形表示聚合关系: 从实现的角度讲,聚合可以表示为: class A {…} cla...翻译 2018-08-25 00:24:05 · 179 阅读 · 0 评论 -
C/C++ 笔试(三)
31.简述数组与指针的区别?数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。指针可以随时指向任意类型的内存块。 (1)修改内容上的差别 char a[] = “hello”; a[0] = ‘X’; char *p = “world”; // 注意p 指向常量字符串 p[0] = ‘X’; // 编译器不能发现该错误,运行时错误 (2) 用运算符sizeof 可以计算出...翻译 2018-08-25 05:33:13 · 239 阅读 · 0 评论 -
C/C++面试题(四)
试题1:写一个函数返回1+2+3+…+n的值(假定结果不会超过长整型变量的范围)int Sum( int n ){ return ( (long)1+ n) * n /2; //或return (1l + n)* n / 2;}剖析: 对于这个题,只能说,也许最简单的答案就是最好的答案。下面的解答,或者基于下面的解答思路去优化,不管怎么“折腾”,其效率也不可能与直接...翻译 2018-08-25 09:14:15 · 194 阅读 · 0 评论 -
vector迭代器失效
C++面试题经常会背问到vector和list的区别,其中就有一个问题就困扰我们的,面试官说vector在进行插入和删除元素的时候迭代器会失效,list不会,那这边由我来给大家举个列子:#include<iostream>#include<vector>using namespace std;int main(){ vector<int>...原创 2018-09-09 20:02:22 · 307 阅读 · 0 评论 -
剑指offer--替换空格
一、题目题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。二、代码块代码块语法遵循标准markdown代码,例如:class Solution {public: void replaceSpace(char *str,int length) {...翻译 2018-08-08 09:07:29 · 144 阅读 · 0 评论