随笔分类 - C++
摘要:map以键值对的形式存储数据,且插入的元素自动排序,底层一般采用红黑树的结构。 基本用法 #include <iostream> #include <map> using namespace std; /* insert() 插入元素,当key相同时,插入失败 [] = xxx 直接插入,key相同
        阅读全文
                
                    posted @ 2020-05-08 14:01  
Yong_无止境
    
                
            
摘要:list和vector的用法基本相同,区别如下: list可以头尾插入和删除,效率一样,vector只有尾部插入和删除效率才高,头部操作效率很低 list的排序有专有的接口,不能使用全局的接口,原因是list中的节点不能随机访问,vector中的节点可以随机访问 vector是连续存储,list不是
        阅读全文
                
                    posted @ 2020-05-08 11:37  
Yong_无止境
    
                
            
摘要:Vector作为STL容器中的一员,使用频率非常高,因此对其基本用法和实用技巧进行记录,便于后期查询使用。 基本用法 #include <iostream> #include <vector> using namespace std; /* empty() 判断vector是否为空 size() 获
        阅读全文
                
                    posted @ 2020-05-08 10:35  
Yong_无止境
    
                
            
摘要:启 配接器就是适配器 STL中的适配器一共三种: 迭代器适配器 是一种观念上的改变,如将赋值操作变成插入,前进变成后退,等 函数适配器 STL中最广泛的配接器群体 可以实现连续配接 配接操作:bind,negate,compose 容器适配器 stack和queue的底层都是deque 配接器就是适
        阅读全文
                
                    posted @ 2019-09-23 19:48  
Yong_无止境
    
                
            
摘要:仿函数就是函数对象 函数对象: 重载了operator()的类对象 使用起来和普通函数一致,所以称为函数对象或是仿函数 STL中对于仿函数的参数进行了特殊处理,定义了两个特殊类,类里面只有类型定义 一元函数类,unary_function 仿函数就是函数对象 函数对象: 重载了operator()的
        阅读全文
                
                    posted @ 2019-09-23 19:40  
Yong_无止境
    
                
            
摘要:启 算法,问题之解法也 算法好坏的衡量标准:时间和空间,单位是对数、一次、二次、三次等 算法中处理的数据,输入方式都是左闭又开,类型就迭代器, 如:[first, last) STL中提供了很多算法,我们只研究感兴趣的几种 算法,问题之解法也 算法好坏的衡量标准:时间和空间,单位是对数、一次、二次、
        阅读全文
                
                    posted @ 2019-09-23 19:36  
Yong_无止境
    
                
            
摘要:AVL树 AVL树定义:红黑树是一颗二叉搜索树,特别的是一棵保持高度平衡的二叉搜索树 AVL树特点: 每个结点的左右子树的高度之差的绝对值(平衡因子)最多为1 AVL树插入: 说明:新增节点的平衡因子是0,新增节点是右节点,父节点平衡因子+1,新增节点是左节点,父节点平衡因子-1 插入新增节点后,父
        阅读全文
                
                    posted @ 2019-09-23 19:30  
Yong_无止境
    
                
            
摘要:前言 容器,置物之所也。就是存放数据的地方。 array(数组)、list(串行)、tree(树)、stack(堆栈)、queue(队列)、hash table(杂凑表)、set(集合)、map(映像表)…等等。 容器按照存储的方式可以分为:序列式容器和关联式容器 序列式容器:容器里面的数据可以进行
        阅读全文
                
                    posted @ 2019-09-23 19:04  
Yong_无止境
    
                
            
摘要:准备知识 迭代器是链接容器和算法的桥梁,所有的算法都通过迭代器操作容器中的数据 迭代器是一种智能指针,最重要的操作符重载就是operator*,operator-> 迭代器的实现需要知道容器的具体细节,因此每一种容器都对应自己特有的迭代器,但是迭代器的接口是一致的 迭代器是链接容器和算法的桥梁,所有
        阅读全文
                
                    posted @ 2019-09-23 18:47  
Yong_无止境
    
                
            
摘要:作用:对内存的管理 接口:申请和释放 内容: 几个全局函数 一级配置器 二级配置器 几个全局函数 一级配置器 二级配置器 准备知识 Plain Old Data简称POD,表示传统的C语言类型;与POD类型对应的是非POD类型,表示C++独有的类型 区别:POD类型可以直接新进行批量拷贝,非POD类
        阅读全文
                
                    posted @ 2019-09-23 15:20  
Yong_无止境
    
                
            
摘要:STL源码包含哪些内容 容器:STL的核心 适配器:容器都是在一种最底层的基础容器上使用适配器实现 空间配置器:提供内存的管理 迭代器:由于遍历容器中的数据 算法:由于操作容器中的数据,如排序,拷贝,查找... 仿函数:算法的实现方式就是使用仿函数 容器:STL的核心 适配器:容器都是在一种最底层的
        阅读全文
                
                    posted @ 2019-09-03 16:44  
Yong_无止境
    
                
            
摘要:内存的申请和释放,C++从语言级别提供了new和delete关键字,因此需要了解和熟悉其中的过程。 了解new-handler的行为 set_new_handler可以指定一个函数,当申请内存失败时调用,如果调用指定的函数后,内存还是不够,就会循环调用 使用set_new_handler指定函数一定
        阅读全文
                
                    posted @ 2019-09-03 15:32  
Yong_无止境
    
                
            
摘要:模板和泛型编程的关注重点在编译期,所有的行为都在编译期确定,因此其规则和玩法也有自己特殊的一套,和其他模块不通用。 了解隐式接口和编译期多态 元编程 编译器多态,决定哪个重载函数被调用 class的特点: 显示接口 运行期多态 template的特点: 隐式接口 编译器多态,模板的具现和函数的重载 
        阅读全文
                
                    posted @ 2019-09-03 14:27  
Yong_无止境
    
                
            
摘要:如何正确的使用继承和实现是本章说明的重点。 确定public继承的关系是is-a public继承等同于is-a 对public继承,所有base的特性,在derived上都适用 public继承等同于is-a 对public继承,所有base的特性,在derived上都适用 避免遮掩继承而来的名称
        阅读全文
                
                    posted @ 2019-09-03 14:09  
Yong_无止境
    
                
            
摘要:本章主要是解决如下问题: 类的声明和定义在什么时候提出 类与类之间的耦合关系如何降低 类型转换怎么正确使用 尽可能延后变量定义式的出现 变量用到时在定义,不要提前定义,防止变量定义而没有使用的情况,因为代码可能中途返回 变量用到时在定义,不要提前定义,防止变量定义而没有使用的情况,因为代码可能中途返
        阅读全文
                
                    posted @ 2019-09-03 10:55  
Yong_无止境
    
                
            
摘要:C++软件开发可以理解为设计一系列的类,让这些类相互使用,最终实现我们所需要的功能。类与类之间的相互关系可以很复杂,也可以很简单,如何简单高效的描述类与类之间的关系是设计的难点之一。遵循本文所提供的方法,将会给你一些灵感。 让接口容易被正确使用,不易被误用 限制类型的办法:建立新类型,限制类型上的操
        阅读全文
                
                    posted @ 2019-09-03 10:30  
Yong_无止境
    
                
            
摘要:C++中资源泄漏一直都是老大难的问题,特别是在嵌入式环境中,一点点的资源泄漏,加上长时间的运行们就会导致程序崩溃,这种问题定位非常困难,无规律偶发。解决问题的一种方式是使用特定工具检查内存泄漏,优点是简单,可以直接找出泄漏的函数,缺点是复现,时间长,不同工具的使用方式不同,不统一,在私有平台和编译器
        阅读全文
                
                    posted @ 2019-09-02 19:47  
Yong_无止境
    
                
            
摘要:了解C++默认提供和调用的函数 编译器会自动为每一个空类创建构造函数、拷贝构造函数、赋值运算符以及析构函数 不要使用编译器自动创建的函数,要杜绝这种情况发生,自己编写这些函数 编译器会自动为每一个空类创建构造函数、拷贝构造函数、赋值运算符以及析构函数 不要使用编译器自动创建的函数,要杜绝这种情况发生
        阅读全文
                
                    posted @ 2019-09-02 18:52  
Yong_无止境
    
                
            
摘要:视C++为一个联邦语言 面向过程,面向对象,泛型编程,元编程,C++同时支持,强大而迷惑 C++语言可以分为如下4个部分: C,C语言相同 C with Class,包括封装、继承、多态... Template C,模板元编程 STL,标准C++的一部分,主要是和容器、迭代、算法等有关 每个部分有每
        阅读全文
                
                    posted @ 2019-09-02 16:08  
Yong_无止境
    
                
            
摘要:C++的语法全而复杂,如何简洁高效的使用C++的各种语法,是一个值得研究的问题,特别是对于刚入门或是有小几年开发经历的同学,了解或是熟悉这个问题,所得到的提升无疑是巨大的。向前人学习,站在巨人的肩膀上,会让你很爽。 <Effective C++>这本书开篇就很牛逼的说到:C++成员分为两类,一类是读
        阅读全文
                
                    posted @ 2019-09-02 15:51  
Yong_无止境
    
                
            

 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号