![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++基础知识
文章平均质量分 52
我就是多啦a梦
这个作者很懒,什么都没留下…
展开
-
C++中struct和class的区别
C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。struct能包含成员函数吗? 能!struct能继承吗? 能!!struct能实现多态吗? 能!!! 既然这些它都能实现,那它和class还能有什么区别?最本质的一个区别就是默认的访问控制: 默认的继承访问权限struct是pu转载 2015-12-23 23:34:26 · 416 阅读 · 0 评论 -
NULL、0、nullptr 区别分析
C的NULL在C语言中,我们使用NULL表示空指针,也就是我们可以写如下代码:int *i = NULL;foo_t *f = NULL;实际上在C语言中,NULL通常被定义为如下:#define NULL ((void *)0)也就是说NULL实际上是一个void *的指针,然后吧void *指针赋值给int *和foo_t *的指针的时候,隐式转载 2017-10-23 11:07:06 · 339 阅读 · 0 评论 -
C++中,new/delete和malloc/free的区别
1、new/delete是C++的操作符,而malloc/free是C中的函数。2、new做两件事,一是分配内存,二是调用类的构造函数;同样,delete会调用类的析构函数和释放内存。而malloc和free只是分配和释放内存。3、new建立的是一个对象,而malloc分配的是一块内存;new建立的对象可以用成员函数访问,不要直接访问它的地址空间;malloc分配的是一块内存区域,转载 2017-10-22 23:48:06 · 330 阅读 · 0 评论 -
堆和栈的区别
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两转载 2017-09-29 10:03:03 · 273 阅读 · 0 评论 -
C++常见问题: 字符串分割函数 split
C++常见问题: 字符串分割函数 splitC++标准库里面没有字符分割函数split ,这可太不方便了,我已经遇到>3次如何对字符串快速分割这个问题了。列几个常用方法以备不时之需。 方法一: 利用STL自己实现split 函数(常用,简单,直观)原型: vector split(const string &s, const string &seperator);输入一转载 2016-07-22 13:13:49 · 941 阅读 · 0 评论 -
递归经典问题详解
1 递归需要满足的两个条件:(1)有反复执行的过程(调用自身);(2)有跳出反复执行过程的条件(递归出口)。2 递归经典例子:(1) 阶乘n!=n*(n-1)*(n-2)*...1(n>0)int recursive(int n){ int result=0; if(n==1) return 1; result=n*recursive(n-原创 2016-03-26 13:32:24 · 503 阅读 · 0 评论 -
关于MFC中使用vector的问题
在Dlg.h文件中加入 #include using namespace std;extern vector aaa; 再在Dlg.cpp文件中加入vector aaa; 详情参考http://bbs.csdn.net/topics/390573469原创 2016-03-15 10:24:22 · 5162 阅读 · 0 评论 -
C++全局常量与变量的定义方法
1 全局变量(extern)当两个类都需要使用共同的变量,我们将这些变量定义为全局变量。比如,res.h和res.cpp分别来声明和定义全局变量,类ProducerThread和ConsumerThread来使用全局变量。/**********res.h声明全局变量************/ #pragma once #include const int g_nDat原创 2016-03-15 09:58:33 · 5110 阅读 · 0 评论 -
如何创建指定大小的数组/字符串
#include #include #include using namespace std;int main(){ vector a(10); int b[10]; int *c = new int[10]; char str2[10]; char *str3 = new char[10]; }原创 2016-03-13 13:24:07 · 3120 阅读 · 2 评论 -
阿里c++一面面经
1 多态,虚函数与虚函数表2 智能指针的作用及实现3 sizeof,不能使用sizeof的情况下判断系统的位数?4 三次握手,四次挥手,中间的等待5 空class的大小,包含int和虚函数的大小6 链表是否有环,O(1)时间复杂度删除指定节点,海量数据处理(topk)7 线程安全(单例模式, 懒汉,饿汉)8 vector的动态增长?9 memcpy的内存重...原创 2018-07-19 20:42:18 · 1315 阅读 · 0 评论