c++基础
文章平均质量分 76
wushuomin
这个作者很懒,什么都没留下…
展开
-
【整理自用】单链表问题(一)
单链表LeetCode上的定义:struct ListNode 单链表的结构体{ int val; 节点值 ListNode *next; 节点下一个地址 ListNode(int x):val(x),next(NULL){}; 构造函数};从头到尾打印单链表思路: 1.由于递归相当于是堆栈结构,后进先...原创 2018-03-06 21:13:25 · 614 阅读 · 0 评论 -
【整理自用】fork()函数(二)
在我博客的fork()函数(一)中提到: 一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同。这篇就详细说明一下:子进程“继承”父进程的变量,其虚拟地址总是一样的。注意:是虚拟地址而非真正的物理地址!!!在fork时整个虚拟地址空间被复制,但是虚拟地址空间所对应的物理...原创 2018-04-19 10:35:16 · 170 阅读 · 0 评论 -
多线程之pthread_create()函数
总述:pthread_create是(Unix、Linux、Mac OS X)等操作系统的创建线程的函数。它的功能是创建线程(实际上就是确定调用该线程函数的入口点),在线程创建以后,就开始运行相关的线程函数。 pthread_create的返回值表示成功,返回0;表示出错,返回表示-1。pthread_create函数如何创造线程函数原型声明:#include <pth...原创 2018-04-23 15:38:19 · 164325 阅读 · 4 评论 -
【整理自用】清奇思路(一)NIM游戏、(一堆石头,最后一个胜利)
NIM游戏类似 一共有N堆石子,编号1..n,第i堆中有个a[i]个石子。每一次操作Alice和Bob可以从任意一堆石子中取出任意数量的石子,至少取一颗,至多取出这一堆剩下的所有石子。两个人轮流行动,取走最后一个的人胜利。Alice为先手。 招行的那道题:有A,B,C 三间。里面分别有一定数量的面试官。小张和小玲两个HR,每一次可以从任意一个房间中派出任意数量的面试官,至少派1个...原创 2018-03-30 17:24:10 · 1103 阅读 · 0 评论 -
c++内存空间
1.内存占用空间题目:若char是一字节,int是4字节,指针类型是4字节,代码如下:class CTest{ public: CTest():m_chData(‘\0’),m_nData(0){ }; virtual void mem_fun(){}; private: char m_chData; ...原创 2018-04-19 20:23:52 · 498 阅读 · 0 评论 -
【整理自用】类::构造函数
1.构造函数只有在创建实例化时才会调用2.拷贝构造函数和赋值函数2.1拷贝构造函数2.2赋值函数类中方法的别称1.构造函数只有在创建实例化时才会调用构造函数是一种特殊的类成员函数,当创建一个类的对象时,它被调用来对类的数据成员进行初始化和分配内存。(构造函数的命名必须和类名完全相同)题目:若PAT是一个类,则程序运行时,语句“PAT(*ad)[3];”调用P...原创 2018-04-07 17:17:53 · 329 阅读 · 0 评论 -
CVTE一面
昨天辛辛苦苦写了一堆。。居然都没有了。好不容易写好的东西,点了发布居然在博客列表里找不到。这里重新简单整理一下题目:1.c++基础1. 当你使用new之后,发生了什么?问题不难,和面试官沟通之后,发现他还想问当创建一个空类,除了有默认构造函数还会有什么默认成员函数。 总共有六个:(前四个是通常都知道的) 1. 默认构造函数 2. 默认析构函数 3. 默认赋值运算符 4...原创 2018-04-27 08:05:19 · 274 阅读 · 0 评论 -
清奇思路(六)从1到n整数中1出现的次数
1.题目描述2. 清奇思路:如何找数字规律判断每一位有几个“1”2.1 举例子找规律2.1.1百位为例,百位上至少有多少个“1”2.1.2 如果X>1(即X为2~9)2.1.3 如果X==02.1.4 如果X==12.2用公式写出来2.3代码表示1.题目描述 1~13中包含1的数字有1、10、11、12、13,因此“1”共出现6次;...原创 2018-05-06 11:30:54 · 797 阅读 · 0 评论 -
【整理自用】C++友元函数
1.友元函数声明、定义位置2.友元函数的注意点1.友元函数声明、定义位置在类中声明的友元函数与类在同一个命名空间内,而不是在类里面; 就像同一目录下的两个文件,是兄弟关系,而不是包含关系。友元声明只能出现在类定义的内部,具体位置不限,也不受所在区域访问级别的限制。友元可以定义在类内部,这是隐式内联的。2.友元函数的注意点(1) 友元关系不能被继承。 ...原创 2018-04-28 10:19:32 · 200 阅读 · 1 评论 -
【伪清奇思路】寻找数组中的逆序对个数
[toc] 题目来源:剑指offer 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 示例: 输入: 1,2,3,4,5,6,7,0 输出 7 需要仔细研究一下示例,光看题目,会以为前面一个...原创 2018-05-14 09:43:45 · 1197 阅读 · 0 评论 -
【整理自用】模板
1. 函数模板1.1 奇特的模板类继承2.类模板与模板类1. 函数模板知识点: 1. 函数模板调用时不需要显式指定类型,系统自动匹配参数类型,若没有合适的,会进行报错。 2. 类模板使用需要显式指定类型。 3. 返回值和参数的类型一致。将函数赋值给函数指针之时,尤其需要注意这个问题。 4. 函数模板是由编译器根据调用类型实例化为可执行的函数。 5. 函数模版可以...原创 2018-04-13 16:35:04 · 259 阅读 · 0 评论 -
【整理自用】strcpy,strncpy,memcpy,memmove,memset
写在前面的话:本博客是看了“寂寞的泡面”的博客整理而来,原文地址见蓝色超链接: 细谈C语言中的memcpy,memset,memmove,strcpy,strncpy函数1.memcpy简单说明,有重点!!!: 1. 由src(源地址)所指内存区域复制count个字节到dest(目标地址)所指内存区域。 2. src和dest所指内存区域不能重叠,函数返回指向dest的指针。 ...转载 2018-04-22 21:42:06 · 184 阅读 · 0 评论 -
【整理自用】清奇思路(四) 实现乘方的最小操作/斐波那契数列(Fibonacci )最小时间复杂度
实现乘方的最小时间复杂度1.求anana^n的计算方法:an={a(n/2)∗a(n/2)a(n−1)/2∗a(n−1)/2∗an为偶数n为奇数(1)(1)an={a(n/2)∗a(n/2)n为偶数a(n−1)/2∗a(n−1)/2∗an为奇数a^n=\begin{cases} a^{(n/2)}*a^{(n/2)} &n为偶数\\ a^...原创 2018-04-22 14:58:35 · 463 阅读 · 0 评论 -
[整理自用]c++错题(长期更新)
显式调用重载的运算符函数格式化输出不知道算什么函数调用约定类型安全时间复杂度malloc and free结构体纯虚函数与抽象基类组合和继承异常处理顶层const和底层const显式调用重载的运算符函数题目:已知表达式++a中的”++”是作为成员函数重载的运算符,则与++a等效的运算符函数调用形式为: ...原创 2018-03-06 16:44:00 · 723 阅读 · 0 评论 -
C语言未定义行为
写在前面的话: 原文链接为:https://blog.csdn.net/qq_29169813/article/details/51416281。感谢博主,是真的结合自己的感受写出来的,而且练习题哈哈哈和我遇上的也是一样的。我申请过啦,博主同意我转载的哦~1.什么是未定义行为简单地说,未定义行为是指C语言标准未做规定的行为。编译器可能不会报错,但是这些行为编译器会自行处理,所以不同的编译...转载 2018-04-08 16:58:16 · 1801 阅读 · 0 评论 -
fork()函数(一)
写在前面:因为是学习过程中从多处搜索过来的,所以博文并非转自某一篇,文末会给出转载的博文和链接。1.fork()函数[1][1]^{[1]}fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,这个新产生的进程称为子进程。一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的...转载 2018-03-26 11:06:57 · 186 阅读 · 0 评论 -
【整理自用】c++继承、虚函数
虚函数动态绑定1. 通常情况一般的认为,虚机制发生在对象调用时,其实不然,只要能用到之时,他便会出现!在调用基类函数的时候,如果基类调用了一个虚函数,同样虚机制也会产生效果!(不是基类的构造函数中!) 以下两端代码输出结果完全不同,原因就在于:调用虚函数,只受当前对象的影响。即this指针。#include <iostream>using namespace std...原创 2018-03-26 19:13:39 · 201 阅读 · 0 评论 -
【整理自用】C++函数传递
这个本来是没什么需要说明的,但是偏偏是错了几道题,发现自己思考不够严谨。1. 搞清楚到底在说那个变量函数传递,确实存在着值传递、址传递和引用传递三种。但是要搞清楚着通常是对于什么变量而言的。 以下三个是所谓的值传递,值传递和引用传递最简单的表达形式:int abs(int a);int abs(int *a);int abs(int &a);对于形如上述的表达...原创 2018-04-01 20:22:32 · 346 阅读 · 0 评论 -
【整理自用】一些数据结构题目、思路
Vector动态实现思想: vector在定义时预留了一部分内存空间来用于存储新增的元素。 当添加元素时,如果vector空间大小不足,则会以原大小的两倍另外配置一块较大的新空间,然后将原空间内容拷贝过来,在新空间的内容末尾添加元素,并释放原空间。 vector的空间动态增加大小,并不是在原空间之后的相邻地址增加新空间,因为vector的空间是线性连续分配的,不能保证原...原创 2018-04-09 14:54:52 · 946 阅读 · 0 评论 -
【整理自用】c++常量折叠(const int 到底能不能被修改)
知识点来源于c++常量折叠。 首先,先看牛客网上c++的一道题目: 在c++中,以下程序代码输出是? 答案是 (0, 1)const int i = 0; int *j = (int *) &i; *j = 1; printf("%d,%d", i, *j)就感觉很神奇,jjj指向的是iii所在的位置,如果能够这样强制修改,那么const的作用就不复存在了,但...原创 2018-04-14 16:57:08 · 581 阅读 · 1 评论 -
【整理自用】二叉树的子树、子结构
二叉树的子树和子结构 子树的意思是只要包含了一个结点,就得包含这个结点下的所有节点. 子结构的意思是包含了一个结点,可以只取左子树或者右子树,或者都不取。简单而言,与子树不同的是,子结构可以是A树的任意一部分。 这里以一颗7节点,高度为3的满二叉树为例,说明子树和子结构的差别: 图11.图1的子树示意图对于图1而言,子树意味着图2,图3等情况。根据定义非...原创 2018-04-14 20:16:44 · 17555 阅读 · 1 评论 -
【整理自用】计算机运算符
运算优先级记忆运算优先级从下向上: 逗号是最低的; 所有和赋值运算有关的运算符优先级都是最低的。(=,<=,+=,<<=等等) 与、或等逻辑运算(但非运算等级是第二位的) 表达式之间的关系运算(==,!=,<=,>=) 四则运算(数之间的运算,包括<<,>>)。 ...原创 2018-03-30 20:55:49 · 2190 阅读 · 0 评论 -
【整理自用】格式输出结果
牛客上有一些题目,只需要看输出格式就可以了,不用想太复杂。 1. 不管是有符号数还是无符号数,printf控制输出如果%d之类的,显示在屏幕上的都是有符号数。所以有些题目不用想那么复杂。 题目:下列C程序执行后c输出结果为( )(32位)(-1)#include<stdio.h>#include<stdlib.h>void main(){ int a ...原创 2018-04-12 14:49:43 · 219 阅读 · 0 评论 -
【整理自用】深入探索c++对象模型(二)
是从第二章开始看起的,通常情况下,如果以后开头没有特殊说明,标题中()里数字代表的是章节序号1. 默认构造函数在需要的时候构建1.1 需要的时候:被编译器所需要的时候偷偷构建情况1: 如果类中包含有一个其他类成员,且这个类成员有默认构造函数。那么编译器构建默认构造函数(事实上相当于是调用该类成员默认构造函数) 注意:其他成员仍然处于未知状态。例子:class A{...原创 2018-05-14 15:50:33 · 165 阅读 · 0 评论