![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
刘群阳
这个作者很懒,什么都没留下…
展开
-
STL常用容器
序列式容器:vector list deque stack queue heap priority_queue slist关联式容器:set map multiset multimap hashtable hash_set hash_map hash_multiset hash_multimap原创 2021-08-04 09:46:11 · 147 阅读 · 0 评论 -
深度优先搜索(DFS)和广度优先搜索(BFS)
1.深度优先搜索主要思想是沿着邻接节点深度往下拓展,当遇到的节点的邻接点都被访问过时,则沿路返回上一个节点,在访问上一个节点的邻接点。vector<bool> Visited; //存储所有顶点是否被访问过,flase为没被访问过auto G = Graph(); //图//DFSvoid DFS(Graph *G, int i){ EdgeNode * p; Visited_List[i] = true; cout << G->VexList[..原创 2021-07-29 10:53:04 · 128 阅读 · 0 评论 -
C++ 函数知识点
1.形参和实参实参是形参的初始值,实参类型必须与形参类型匹配。函数形参列表可以为空。void fact(int i) { };fact(3.14); // 正确的,因为实参3.14可以隐式转换成int类型。2.参数传递当形参是引用时,形参将绑定到对应实参上,那么实参是引用传递(传引用调用);当实参是值被拷贝给形参,形参和实参是两个互相独立的对象,那么实参是值传递(传值调用)。使用引用形参,可以避免拷贝。当形参是大的类型对象或者容器对象,拷贝的效率低下,而引用可以避免拷贝,提升原创 2021-01-18 23:39:18 · 230 阅读 · 0 评论 -
C++ explicit关键字
C++ 中的explicit关键字只能用于修饰只有一个参数的类构造函数,或者构造函数有n个参数,但有n-1个参数提供了默认值。它的作用是表明该构造函数是显式的,而非隐式的。跟他对应的另一个关键字是implicit,意思是隐藏的,类构造函数默认情况下就是声明为implicit(隐式的)。首先看下面例子:/* 示例代码1 */class Demo{ public: Demo(); /* 构造函数1 */ Demo(double a);.转载 2021-01-08 11:56:28 · 262 阅读 · 1 评论 -
C++ 智能指针
一、share_ptr智能指针事模板,所以创建智能指针时必须提供指向对象的类。智能指针默认初始化保存着一个空指针。share_ptr<string> p1; // 指向stringshrre_ptr<int> p2; // 指向intshare_ptr 的操作share_ptr<T> p; // 创建智能指针p*p; // 获得p指向的对象p->men; //获得p的成员menp.get(); //返回p中保存的指针,若智能指针释放了对象,原创 2020-12-21 23:35:53 · 170 阅读 · 0 评论 -
C++ 内存分配与堆栈区别与new/malloc区别
一、内存静态内存:保存局部的static对象、类static数据成员、定义在任何函数之外的变量(全局变量)。static对象在使用之前分配,程序结束时销毁。栈内存:保存定义在函数内的非static对象,栈对象程序运行时才存在。(保存局部变量和函数参数等)。动态内存:堆(或者自由空间)进行动态分配,既程序运行时分配的对象。常量存储区:存放常量字符串,程序结束后销毁。动态内存分配:用new/delete(malloc/free)来分配动态内存,或者使用智能指针share_ptr和unique原创 2020-12-17 23:43:01 · 520 阅读 · 1 评论 -
C++ 存储区说明
栈:就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。堆:就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。自由存储区:就是那些由malloc等分配的内存块,他和堆是十分相似的,不过它是用free来结束自己的生命的。全局存储区(静态存储区):全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,原创 2020-12-14 23:16:27 · 100 阅读 · 0 评论 -
C++ 类说明
类的基本思想是数据抽象和封装。类的实现则包括类的数据成员、负责接口实现的函数体以及定义类所需的各种私有函数。1.this指针成员函数通过一个名为this的额外的隐式参数来访问调用它的那个对象。2.常量成员函数const放在成员函数列表之后表示this是指向常量的指针,这样使用const的成员函数被称作为常量成员函数。常量对象,以及常量对象的引用或指针只能调用常量成员函数。3.构造函数构造函数是初始化类对象的数据成员,无论何时只要类对象被创建,就会执行构造函数。...原创 2020-12-09 16:01:49 · 249 阅读 · 0 评论 -
C++ 面向对象设计及多态说明
一、概念面向对象是数据抽象、继承、动态绑定。数据抽象,可以实现类接口与实现分离;继承,派生类可以继承基类;动态绑定,由于存在派生类和基类的继承函数,在实际运行时,会根据传递的实参选择函数的版本,以此实现运行时绑定。1.基类基类中通常应该定义一个虚析构函数。虚函数:派生类可以通过其成员函数覆盖基类的函数。基类中定义了静态成员,则整个继承体系只存在该成员的唯一定义。class base {public: base() = default; virtual ~.原创 2020-12-08 21:05:02 · 134 阅读 · 0 评论 -
size_t 类型解析
1.size_t 的定义size_t是一种机器相关的无符号类型,它被设计的足够大以便能表示内存中任意对象的大小。在C语言中头文件为stddef.h,在C++语言中头文件为csttdef。size_t 是sizeof的返回类型,在64位中是unsigned long int,在32位中是unsigned int。2.使用size_t类型通常用于循环、数组索引、大小的存储和地址运算。数组的下标通常定义为size_t类型。size_t可以跨平台,并且具有高代码的可移植性、有效性或者可读性。.原创 2020-09-23 20:42:49 · 6960 阅读 · 0 评论 -
C++ 多线程
https://www.cnblogs.com/douzujun/p/10810506.html转载 2020-09-15 16:08:29 · 71 阅读 · 0 评论