![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++基础
Jan___
这个作者很懒,什么都没留下…
展开
-
c实现split/借助strtok函数
/*函数原型:void split(char *src,const char *separator,char **dest,int *num)参数:src 源字符串的首地址separator 指定的分割字符dest 接收子字符串的数组num 分割后子字符串的个数*/void split(char *src,const char *separator,char **dest,int *num) { char *pNext; int count = 0;原创 2021-02-27 13:41:34 · 123 阅读 · 0 评论 -
enum枚举
自定义枚举类型enum Roster {Tom, Sharon, Bill, Teresa, John};默认情况下,编译器设置第一个枚举量为 0,下一个为 1,以此类推。在上述示例中,Tom 的值将是 0,Sharon 的值为 1,等等。最后一个枚举量 John 的值为 4。换个角度想想,编译器偷偷编译了:const int Tom = 0;const int Sharon = 1;const int Bill = 2;const int Teresa = 3;const int Joh原创 2020-10-27 09:59:49 · 100 阅读 · 0 评论 -
C/C++错题集
1、关于以下代码,哪个说法是正确的?myClass::foo(){ delete this;}..void func(){ myClass *a = new myClass(); a->foo();}它会引起栈溢出都不正确它不能编译它会引起段错误答案:都不正确。它能编译,在语法上没问题。它不会引起段错误,因为没有看到越界访问的代码。它不会引...原创 2020-04-25 00:01:41 · 5040 阅读 · 0 评论 -
设计模式C++
一、“组件协作”模式:框架与应用程序的划分“组件协作”模式通过晚期绑定,来实现框架与应用程序之间的松耦合,是二者之间协作时常用的模式。典型模式• Template Method• Observer / Event• Strategy1、Template methon模式定义:定义一个操作中的算法的骨架 (稳定),而将一些步骤延迟(变化)到子类中。Template Method使得子类可以不改变(复用)一个算法的结构即可重定义(override 重写)该算法的某些特定步骤。原创 2020-09-27 20:27:00 · 160 阅读 · 0 评论 -
STL-关联容器
关联容器使用关联式容器存储的元素,都是一个一个的“键值对”( <key,value> ),底层选用了 「红黑树」这种数据结构来组织和存储各个键值对。除此之外,序列式容器中存储的元素默认都是未经过排序的,而使用关联式容器存储的元素,默认会根据各元素的键值的大小做升序排序。1 pair 类模板“键值对”算是什么数据类型?C++ STL 标准库提供了 pair 类模板,其专门用来将 2 个普通元素 first 和 second创建成一个新元素<first, second>。1.原创 2020-07-19 21:22:13 · 252 阅读 · 0 评论 -
C++11的右值引用是什么意思?
什么是左值?右值?顾名思义,左值代表=左边的内容,可被修改,即非const变量都是左值;右值代表=右边的内容,不可被修改,即const变量。左值引用“引用”都是引用变量的,而变量是左值,因此它们都是“左值引用”。右值引用函数调用的返回值若不是引用,则该函数调用就是右值。C++11 新增了一种引用,可以引用右值,因而称为“右值引用”。无名的临时变量不能出现在赋值号左边,因而是右值。右值引用就可以引用无名的临时变量。类型 && 引用名 = 右值表达式;右值引用的应用场景引入右值原创 2020-07-19 12:56:56 · 657 阅读 · 0 评论 -
STL-序列容器
#########################################1 STL容器序列容器 array vector list deque排序容器 set multiset map multimap哈希容器 unordered_set unordered_multiset unordered_map unordered_multimap2 STL迭代器iterator标准容器都有迭代器,一般的使用方法是[容器类名::iterator 迭代器名;][*迭代器名]就表示迭代器指向的原创 2020-07-18 20:09:23 · 190 阅读 · 0 评论 -
复习:函数重载、重写、重定义
函数重载:作用在调用同名函数时,针对不同的输入参数,就能调用不同的处理函数class A {public: void f() { cout << "没有参数" << endl; } void f(int a) { cout << "1个参数" << endl; } void f(char a, int b) { c...原创 2020-04-27 13:17:14 · 328 阅读 · 0 评论 -
复习:初始化列表
定义与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。class foo{public:foo(string s, int i):name(s), id(i){} ; // 初始化列表private:string name ;int id ;};从概念上来讲,构造函数的执行可以分成两个阶段,初始...原创 2020-04-26 19:37:06 · 123 阅读 · 0 评论 -
数组指针——指针数组
数组指针——指针数组数组指针的重点是指针。表示的是一个指针,它指向的是一个数组,例子:int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指...原创 2020-04-25 13:01:29 · 216 阅读 · 0 评论 -
复习:虚函数、纯虚函数;虚继承、虚基类
虚函数与虚继承是2个完全不同的概念。一、为什么要有虚函数?虚函数用来实现C++多态机制。多态的实现效果:多态实现了同样的调用语句具有不同的表现形态多态的实现要素:虚函数、父类指针指向子类对象、相同的调用代码。假设有一个函数,它在不同的子类中实现各不相同,那么就将其声明为虚函数,并在子类继承基类后,再对该虚函数改写。/* 父类 */class parent {public: v...原创 2020-04-20 17:25:51 · 360 阅读 · 1 评论 -
复习:C++的命名空间
一、命名空间1.1、什么是命名空间?命名空间(namespace)是C++语言特别重要的特性,当第三方供应商提供的库时,为了避免与其他供应商或者用户定义的名字相冲突(命名空间污染),常常将库的内容放置在自己独立的命名空间中。C++标准库也定义了相应命名空间std,用户在使用标准库时必须通过作用域运算符(::),或者使用using关键词来简化命名空间中名字的使用。1.2、命名空间的实现与使用?...原创 2020-04-10 19:37:58 · 143 阅读 · 0 评论 -
标准IO与文件IO
一、标准IO标准IO:标准I/O是ANSI C建立的一个标准I/O模型,是一个标 准函数包和stdio.h头中的定义,具有一定的可移植性。标准IO库处理很多细节。例如缓存分配,以优化长度执行IO等。标准的IO提供了三种类型的缓存。(1)全缓存:有4096byte,截止条件有三,一是缓存满的时候,二是调用fflush的时候,三是进程正常结束的时候(2)行缓存:有1024byte,它与全缓存截止...原创 2020-04-03 23:37:42 · 255 阅读 · 0 评论 -
C++中的智能指针
一、智能指针的作用-管理堆内存1、什么是智能指针?是一个类,用来存储指针(指向动态分配对象的指针)。2、智能指针的作用?C++程序设计中使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理。程序员自己管理堆内存可以提高了程序的效率,但是整体来说堆内存的管理是麻烦的,C++11中引入了智能指针的概念,方便管理堆内存。使用普通指针,容易造成堆内存泄露(忘记释放),二次释放,程序发生...原创 2020-04-02 20:48:06 · 515 阅读 · 0 评论 -
C++的类模板
1.函数指针——指针函数函数指针的重点是指针。表示的是一个指针,它指向的是一个函数,例子:int (*pf)();指针函数的重点是函数。表示的是一个函数,它的返回值是指针。例子:int* fun();2.数组指针——指针数组数组指针的重点是指针。表示的是一个指针,它指向的是一个数组,例子:int (*pa)[8];指针数组的重点是数组。表示的是一个数组,它包含的元素是指针。例子;...原创 2020-04-02 17:24:07 · 234 阅读 · 0 评论 -
复习:C/C++中的引用
一、引用引用本质上是一个指针常量,在内存中为引用开辟了一个指针型的内存单元。1、引用的特点:(1)、声明引用时必须初始化:int a; //声明变量aint& ra = a; //声明一个引用,名字是ra,ra引用了aint& b;//这是非法的,b不知道它引用了谁(2)、引用一旦声明,便不能转移或修改了:int a, b; //声明变量int& ra ...原创 2020-03-28 19:06:43 · 152 阅读 · 0 评论