行为型:迭代器模式
概述 对于集合对象而言,肯定会涉及到对集合的添加和删除操作,同时也肯定支持遍历集合元素的操作,我们此时可以把遍历操作放在集合对象中,但这样的话,集合对象既承担太多的责任了。 面向对象设计原则中有一条就是单一职责原则,所有我们要尽可能地分离这些职责,用不同的类取承担不同的责任,迭代...
概述 对于集合对象而言,肯定会涉及到对集合的添加和删除操作,同时也肯定支持遍历集合元素的操作,我们此时可以把遍历操作放在集合对象中,但这样的话,集合对象既承担太多的责任了。 面向对象设计原则中有一条就是单一职责原则,所有我们要尽可能地分离这些职责,用不同的类取承担不同的责任,迭代...
区别 array是静态空间,一旦配置了就不能改变。 vector是动态空间,随着元素的加入,它的内部机制会自行扩充空间以容纳新元素。 摘要 迭代器 vector维护的是一个连续线性空间,所以不论其元素型别为何,普通指针都可以作为vector的迭代器而满足所有必要条件 因为vect...
链式存储结构 双向链表是在单链表的每个结点中,再设置一个前驱结点的指针域
准备工作 引入Lua库 导入使用到的相关头文件 创建程序C++,创建好lua相关项 编写C/C++函数并对函数进行注册 在lua文件中调用相关程序 main.lua
意义 设计并发数据结构,意味着多个线程可以并发的访问这个数据结构,线程可对这个数据结构做相同或不同的操作,并且每一个线程都能在自己的自治域中看到该数据结构。且在多线程环境下,无数据丢失和损毁,所有的数据需要维持原样,且无条件竞争。这样的数据结构,称之为“线程安全”的数据结构。 本...
linux操作系统启动过程 第一个进程 在传统的Unix和Linux系统中,init进程是系统启动后的第一个进程(PID为1) 它是系统的祖先进程,负责启动其他所有的进程 在许多现代Linux发行版中,systemd已经取代了传统的init系统 在这些系统中,systemd是第一...
概述 Pybind11是一个用于将C++代码与Python绑定的轻量级头文件库,使得可以轻松地在Python中调用C++函数和类 还可以让C++代码调用Python的功能和库 理解 可以把Pybind11理解为一个中间层,提供了在C++中调用Python代码或在Python中调用...
模块 (Module) 概述 随着我们的应用越来越大,我们想要将其拆分成多个文件,即所谓的“模块(module) 一个模块可以包含用于特定目的的类或函数库 模块可以相互加载,并可以使用特殊的指令 export 和 import 来交换功能,从另一个模块调用一个模块的函数: exp...
字符串匹配 字符串匹配的形式化定义如下:假设文本是一个长度为n的数组 T[1...n],而模式是一个长度为m的数组P[1...m],其中m<=n。进一步假设P和T的元素都是来自一个有限字母集合M的字符。如M={0,1}或者M={a,b,c,...z}。 字符数组P和T通常称...
概念 简单工厂模式 简单工厂模式专门创建一个类来负责创建其他类得实例,被创建的实例通常都具有共同的父类。 它又称为静态工厂模式。 其实质是,由一个工厂类根据传入的参数,动态决定应该创建哪个具体类的实例。 工厂方法模式 工厂方法模式是粒度很小的设计模式,因为该模式的表现只是一个抽象...
搜索当前分类