c – 具有自定义索引的数组
发布时间:2020-12-16 09:57:22 所属栏目:百科 来源:网络整理
导读:所以我想创建一个包含九个元素的数组,但是我想要由我指定索引,也就是说,而不是访问我的数组元素, std::arraybool,9 myarray 使用myarray [0],myarray [1],myarray [2] ……我想访问它们,例如, myarray[21],myarray[34],myarray[100],myarray[9],myarray[56].
所以我想创建一个包含九个元素的数组,但是我想要由我指定索引,也就是说,而不是访问我的数组元素,
std::array<bool,9> myarray 使用myarray [0],myarray [1],myarray [2] ……我想访问它们,例如, myarray[21],myarray[34],myarray[100],myarray[9],myarray[56]... 但仍保留标准库数组的属性并仅存储9个元素. 更具体地说,我需要轻松访问布尔矩阵的元素. Array<array<bool,100>,100> mymatrix; 并且它将用于简单地使用mymatrix [x] [y]来检查某些位置(比较位置x,y).我也知道有些元素永远不会被检查,所以它们并不是真正需要的.为了节省尽可能多的内存,我们的想法是摆脱那些不需要的元素,但仍然保留结构来检查我的元素. 解决方法
这样的数组最好用标准C库提供的一个关联容器表示 – 即std :: map< int,bool>或者std :: unordered_map< int,bool>.这些容器提供了在C中执行此操作的惯用方法.
使用关联容器的另一个好处是能够迭代值及其外部“索引”. 如果您坚持使用数组来存储值,则必须创建自己的类,以在外部索引和内部索引之间构建“映射”.这将占用大量内存用于O(1)访问时间,使用CPU周期进行二进制搜索以及索引到索引映射,使用线性搜索或硬编码外部索引. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- vue router 跳转后回到顶部的实例
- 哪个数据库适合我的应用程序mysql或mongodb?使用Node.js,B
- Cocos2D-Android-1之源码详解:16.ParticleTest
- c# – ASP.NET MVC – 显示每个项目列表的项目列表
- ios – Mark Generation:什么是VM:Dispatch续
- Oracle在线 redo log文件丢失后的恢复
- c – 为什么没有悬空参考?
- 是一个结构{…};一个类型或一个未命名的变量?
- 【机房重构】--VB.NET限制文本框类型为数字
- The provider is not compatible with the version of Orac