C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了具有任意索引的数组的C类大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
任何流行的C库是否都有一个类(或类)允许开发人员使用具有任意索引的数组而不牺牲速度?

为了给出这个问题更具体的形式,我希望有可能编写类似下面的代码

//An array with inDices in [-5,6)
ArbitraryInDicesArray<int> a = ArbitraryInDicesArray<int>(-5,6);  
for(int index = -5;index < 6;++indeX)
{
    a[index] = index;
}

谢谢…

@L_197_2@

真的,你应该使用带偏移的矢量.甚至是带偏移的数组.额外的加法或减法不会对程序的执行速度产生任何影响.

如果您想要一个认C数组完全相同的速度,可以将偏移量应用于数组指针:

int* a = new int[10];
a = a + 5;
a[-1] = 1;

但是,不建议这样做.如果你真的想这样做,你应该创建一个包含内联函数的包装类,它隐藏了可怕的代码.您可以保持C代码的速度,但最终能够添加更多错误检查.

如注释中所述,在更改数组指针后,您无法使用该指针进行删除.您必须将其重置为阵列的实际开始.另一种方法是始终保持指向开头的指针,但使用另一个修改过的指针.

//resetTing the array by adding the offset (of -5)
delete [] (a - 5);

大佬总结

以上是大佬教程为你收集整理的具有任意索引的数组的C类全部内容,希望文章能够帮你解决具有任意索引的数组的C类所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。