这里尝试使用字典存储方式实现一下稀疏矩阵,考虑到需要提供字典键,我们可以将元素的位置信息通过一一映射的方式转换为键值(这里采用简单的拼接方式,细节见源码),同样是因为一一映射的缘故,通过键值我们也可以获得元素的位置信息...本以为相关实现应该比较简单,但整个过程却颇多意外,这里简单记下~
C#的泛型限制
由于矩阵的元素类型不定,使用泛型实现应该是比较合理的选择,代码大概如此:
// C#
public class Matrix...C#中类型的内存占用
由于需要比较内存占用,我需要获取类型的内存大小,但C#中目前没有直接获取某一类型的内存占用的方法,诸如sizeof,serialize等方式都比较受限,简单尝试了一下 GC.GetTotalMemory...实现过程中自然也有不少意外,其中一个觉得挺有意思:
C/C++ 中多维数组的动态申请
C/C++ 中动态申请一维数组对于大部分朋友来说应该是轻车熟路:
// C++
T* array = new T[array_size...比较结果
代码分别使用了 std::map 和 std::unordered_map 作为底层容器实现了稀疏矩阵,并与基于数组实现的普通矩阵进行了程序效率和空间使用上的对比,下图中的横坐标是矩阵的大小,