2D 数组,某些单元格保存特定数据
2D array, some cells hold specific data
我有一个数组,假设(为了更容易(x和y位置。我只想保存某些单元格的特定数据,这似乎很复杂。我可以保存所有单元格的特定数据,但我只想保存其中一些单元格的特定数据(不浪费内存,对于小型 3000x3000 数组,有 9 000 000 个单元格(。此外,它必须非常快。我不知道该怎么办。哈希算法似乎用于不同类型的问题。例如,我希望 x=50 和 y=100 进入容器并快速获取数据,但如果 x=100 和 y=50 等怎么办。谢谢你的帮助。
使用无序集合
key
可以是 x,y 的元组
还提供一个类KeyEqual
,用自定义比较函数替换默认类。
矩阵是由 m 行和 n 列定义的二维对象,如果此矩阵中的大多数元素的值为 0,则称为稀疏矩阵
int sparseMatrix[x][y]
这用于通过仅遍历非零元素来减少计算时间。
使用这个:
int a[sizex][sizey]; //this creates an array with empty slots
a[x][y]=somenumber; //this changes a value of slot on (x,y) coordinates
sizex
:数组中 x 的大小
sizey
:数组中 y 的大小
例:
e
=空
int a[4][5]; /*creates an array: e, e ,e ,e
e, e ,e ,e
e, e ,e ,e
e, e ,e ,e
e, e ,e ,e*/
a[1][2]=5; /*Now array look like this: e, e ,e ,e
5, e ,e ,e
e, e ,e ,e
e, e ,e ,e
e, e ,e ,e*/
cout<<a[1][2]; //this prints number 5
HashMaps的HashMap应该做得很好,并且可以作为用例的稀疏矩阵。它在不同语言中的实现将是,
- C++11:
unordered_map<int, unordered_map<int, int>> store;
- 爪哇:
HashMap<Integer, HashMap<String, Integer>> store = new HashMap<>();
- 蟒蛇:
store = defaultdict(dict)
相关文章:
- 如何使用自定义流操纵器在类实例中保存数据
- 从 JSON 读取和保存数据
- 我无法使用C ++以二进制模式保存数据
- 在窗口关机时保存数据
- C++VTK从多个文件中读取和保存数据
- 如何读取特定的第一个字符并按C++保存数据
- 永久保存数据
- 如何打印结构矢量?它不是在保存数据吗
- QtT 如何在 QMainWindow 中更改中央小部件时保存数据/状态
- 从旋转框保存数据
- 如果保存数据,libz 压缩将失败
- 如果设置APP_OPTIM:=release,SharedPreferences将无法保存数据
- 从文件中读取数据并保存数据以供以后搜索、插入等的方法
- 保存数据以便在体素编辑器中重复使用的最佳方式
- mysql_query无法正确保存数据
- 添加,保存数据从MFC应用程序(Visual Studio 2015)到SQL Server
- Qt -如何为我的应用程序保存数据
- Windows Phone 8保存数据
- 在执行多线程处理时保存数据
- 二进制文件没有正确保存数据