c++ - 更改数组头指针 C++

标签 c++

假设我有一个数组:

int* arr = new int[10];

我想以 O(1) 的复杂度去除数组中的第一个单元格 所以我想也许有一些方法可以改变数组头指针 我的意思是:

arr = arr + 1 ;

但这不能解决问题程序仍然将 arr 处理为第二个单元格(我不能用这个指针重新分配)而不是内存块,数组头 所以我希望有人能帮我解决这个问题(以 O(1) 复杂度去除数组中的第一个单元格或更改数组头指针 [我听说您可以将 asm 代码添加到 cpp 代码中,有帮助吗? ] )

最佳答案

数组在其整个生命周期中始终具有恒定数量的元素。无法添加或删除元素。

I thought maybe there is some way to change the array head pointer I mean :

arr = arr + 1 ;

使用像这样的“头”指针是唯一的(尽管基于索引的类似解决方案也是可能的)O(1) 方法来“删除”——或者更确切地说,假装元素已从数组中删除。

不过,您不应该更改 arr 本身,因为您需要原始值来释放分配。

but this not solve the problem the program still treats arr to the second cell instead of the memory block, array head

您认为问题没有解决的原因真的不清楚。

关于c++ - 更改数组头指针 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58698571/

相关文章:

c++ - 如何在 Veins 4.4 中正确使用 "moduleDisplayString"?

c++ - 在没有 RTTI 的情况下测试类型相等性

c++ - 在 while 循环中使用 Module32Next() 时比较 wchar_t

c++ - 将 false 转换为指针类型 void*?

c++ - 在 C++ 中使用私有(private)继承时是否可以隐藏重载方法

c++ - getline 错误

c++11 正则表达式提取文本

c++ - 如何将 C++/Cli 项目链接到 native C++ 静态库

c++ - 在 C++ 中的线程之间共享列表

c++ - 将多个基础结构组合成自定义类型