C++中将以数组为数据结构的程序改成以指针为数据结构的程序

有一段程序 删除一组已按从小到大顺序排列的数中相同的数 用数组实现了 现要求用指针代替数组 根据对象的具体元素个数动态的开辟存储空间存放对象数据 如何实现
#include<iostream.h>
//using namespace std;
class ARR
{
private:
int m;
int a[100];
public:
ARR(int size , int x[])
{
m=size;
for(int i=0;i<size;i++)
a[i]=x[i];
}
void delsame();
void show()
{
for(int i=0;i<m;i++)
{ cout<<a[i]<<"\t";
if((i+1)%5==0)
cout<<endl;
}
cout<<endl;
}
};

void ARR::delsame ()
{
int i,j;
for (i=0;i<m-1;i++)
{
if (a[i]==a[i+1])
{
for (j=i+1;j<m-1;j++)
{
a[j]=a[j+1];
}
m--;
i--;
}
}
}

int main()
{
int b[16]={1,2,2,3,4,4,5,6,6,7,8,8,8,9,10,10};
ARR v(16,b);
v.show ();
v.delsame ();
v.show ();
return 0;
}

第1个回答  2009-07-19
数组名本身是指向这个数组的第一个元素的,所以,你只需要a[j] = a[j+1]改成a+j = a+j+1就可以了
第2个回答  2009-07-22
要求说的太不清楚了,我完全可以让指针指向一个长为16的int数组,然后把b的数据拷进去,再回拷给b.回拷的时候只要注意,如果一个元素和刚才拷的上一个元素值一样就不用拷了.本回答被网友采纳

为什么在C++中不能修改数组的某部分?
首先,我们来了解一下什么是数组。在编程中,数组是一种数据结构,用于存储一系列相同类型的值。每个值都有一个特定的索引,通过这个索引我们可以访问或者修改这个值。数组可以是一维的(如一个列表),也可以是多维的(如一个表格)。当你看到“不能更改数组的某一部分”这样的错误消息时,通常意味着你...

怎样用C++实现逻辑表达式转换成真值表的程序
(P∧(P->Q))->Q p->Q等价于(┐P)∨Q写成C\/C++语言就是(!P)||Q P∧(P->Q)等价于P∧((┐p)∨Q)写成C\/C++就是P&&((!P)||Q))(P∧(P->Q))->Q等价于(┐(P∧((┐p)∨Q)))∨Q写成C\/C++语言就是(!(P&&((!P)||Q)))||Q Programe Code:include <iostream> using...

C++里如何把char a[2]中数据赋给WORD类型数据组成一个字数据~
=3。这里函数参数a3已不再是数组类型,而是蜕变成指针,相当于char* a3,为什么仔细想想就不难明白,我们调用函数foo1时,程序会在栈上分配一个大小为3的数组吗不会!数组是“传址”的,调用者只需将实参的地址传递过去,所以a3自然为指针类型(char*),c3的值也就为4。7. 结构体的sizeof 这是初学者问得最多的一...

用C++编程时,数据结构的结点一般是用结构体还是类来写?
这个看你程序要求了,虽然在C++中结构体和类的区别就是默认类不同(结构体成员默认为public 的类),但是习惯是用结构体来承载数据,类里面包含方法函数等,你的节点要是带一些处理函数或者功能的话 可以用类,看你怎么应用了

指针与函数:指针作为函数参数与返回值的应用
1. 指针作为函数参数通过将指针作为函数参数,可以直接修改实参数据,节省内存并提高执行效率。特别是对于大型数据结构,传递指针而非值或拷贝更为有效。例如,传递数组指针时,函数能直接操作数组内容,无需复制。2. 指针作为函数返回值局部变量指针:需谨慎,因为局部变量在函数结束时会消失,可能导致无效...

...本人要数据结构考试,要求做一个有关于数据结构的C++程序...
1. 修改归并排序算法中的`merge`函数,确保数组索引不会越界。```cpp void merge(int data[], int p, int q, int r) { int i, j, k, n1, n2;n1 = q - p + 1;n2 = r - q;int L[n1], R[n2];for (i = 0; i < n1; i++) { L[i] = data[p + i];} for (i...

c++11C++11变更(基本)
6. **标准程序库变更**:C++11中,标准库组件得到了升级,如线程支持、多元组类型、散列表、正则表达式、通用智能指针、可扩展的随机数功能、包装引用、多态函数对象包装器等。这些库组件的增强,不仅提高了程序的并发处理能力,还使得数据结构和算法的使用更为便捷,大大提升了开发效率。综上所述,C++...

数据结构c++题
单链表是用户不断申请存储单元和改变链接关系而得到的一种特殊数据结构,将链表的左边称为链头,右边称为链尾。头插法建单链表是将链表右端看成固定的,链表不断向左延伸而得到的。头插法最先得到的是尾结点。由于链表的长度是随机的,故用一个while循环来控制链表中结点个数。假设每个结点的值都...

请高手帮我把下面的程序改成伪代码谢谢了 急用
c++大学教程 c++程序设计语言 数据结构算法与应用c++语言描述 c++标准模板库---自修教程与参考手册 泛型编程与STL 深度探索c++对象模型 设计模式---可复用面向对象软件的基础 重构---改善既有代码的设计 Essential c++ Effective c++ More Effctive c++ C++ primer 前五本应该属于入门书籍,后面的属于学习...

C++中指针的用法有那些?怎么定义?怎么初始化?
指针是C语言中广泛使用的一种数据类型。运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构;能很方便地使用数组和字符串;并能象汇编语言一样处理内存地址,从而编出精练而高效的程序。指针极大地丰富了C语言的功能。学习指针是学习C语言中最重要的一环,能否正确理解和使用指针是我们是否掌握C...

相似回答
大家正在搜