数据结构-多维数组的超平面视角:从索引到地址的映射
数据结构-多维数组的超平面视角:从索引到地址的映射
核心思想
多维数组在逻辑上是嵌套的子空间结构,在物理上是一段连续的内存。
寻址的本质:每一维的索引跳过若干个完整的子空间;未满的那个子空间,进入下一维继续定位,直到 0 维。
多维数组在逻辑上是嵌套的子空间结构,在物理上是一段连续的内存。
寻址的本质:每一维的索引跳过若干个完整的子空间;未满的那个子空间,进入下一维继续定位,直到 0 维。
$T(N) = O(f(N))$ if there are positive constants $c$ and $n_0$ such that $T(N) \leq c \cdot f(N)$ when $N \geq n_0$.
$T(N) = \Omega(g(N))$ if there are positive constants $c$ and $n_0$ such that $T(N) \geq c \cdot g(N)$ when $N \geq n_0$.
$T(N) = \Theta(h(N))$ if and only if $T(N) = O(h(N))$ and $T(N) = \Omega(h(N))$.
理解模块是笔者个人心得体会,如果有误欢迎留言指出
设 $V$ 是域 $\mathbb{K}$ 上的 $n$ 维向量空间,$A$ 是一个非空集合,$A$ 中的元素称为点(point)。如果存在满足以下条件的加法映射 $$+: A \times V \to A, \quad(p, x) \mapsto p + x \in A$$
Session 是工作单元控制器(Unit of Work Controller),不是查询缓存。
| 缓存类型 | Session 是否负责 | 说明 |
|---|---|---|
| Identity Map(对象缓存) | 负责 | 按主键存储对象,保证同一主键只有一个实例 |
| Query Cache(查询缓存) | 不负责 | 不按查询条件缓存,相同 SQL 仍会执行 |
多个 Session 共用同一个 Engine 的连接池,但不共用缓存:
class M(type):
@classmethod
def __prepare__(metacls, name, bases, **kwargs):
namespace = dict()
# 注入一个工具函数,类定义体里可以直接用
namespace['add'] = lambda a, b: a + b
namespace['BASE_VALUE'] = 100
return namespace
class Test(metaclass=M):
result = add(1, 2)
total = BASE_VALUE + 50
test = Test()
print(Test.result) #3这里是一个元类,这里直接塞入了一个add方法,这样所有被这个元类创建的类都可以使用这个方法
统一的跨平台的构架工具,用于生成makefile(makefile用于生成二进制文件)
Targets represent executables, libraries, and utilities built by CMake. Every
add_library,add_executable, andadd_custom_targetcommand creates a target.