C++ C+中的数组类+;:如何在另一种方法中使用一种方法
我有一个用于执行各种数组操作的类。我喜欢在填充方法中使用insert方法。 有人能指导我吗?代码如下:C++ C+中的数组类+;:如何在另一种方法中使用一种方法,c++,C++,我有一个用于执行各种数组操作的类。我喜欢在填充方法中使用insert方法。 有人能指导我吗?代码如下: #include <iostream> #include <cstdlib> using namespace std; const int MAX=5; class array { private: int arr[MAX]; public: void insert(int pos, int num); void populate(int[
#include <iostream>
#include <cstdlib>
using namespace std;
const int MAX=5;
class array
{
private:
int arr[MAX];
public:
void insert(int pos, int num);
void populate(int[]);
void del(int pos);
void reverse();
void display();
void search(int num);
};
void array::populate(int a[])
{
for (int i=0;i<MAX;i++)
{
arr[i]=a[i];
}
}
void array::insert(int pos, int num)
{
for (int i=MAX-1;i>=pos;i--)
{
arr[i] = arr[i-1];
arr[i]=num;
}
}
void array::del(int pos)
{
for (int i=pos;i<MAX;i++)
{
arr[pos]=arr[pos + 1];
}
}
void array::display()
{
for (int i=0;i<MAX;i++)
cout<<arr[i];
}
void array::search(int num)
{
for (int i=0;i<MAX;i++)
{
if (arr[i]==num)
{
cout<<"\n"<<num<<" found at index "<<i;
break;
}
if (i==MAX)
{
cout<<num <<" does not exist!";
}
}
}
int main()
{
array a;
for (int j=0;j<MAX;j++)
{
a.insert(j,j);
}
a.populate(a);
a.insert(2,7);
a.display();
a.search(44);
system("pause");
}
#包括
#包括
使用名称空间std;
常数int MAX=5;
类数组
{
私人:
int-arr[MAX];
公众:
无效插入(int pos,int num);
空填充(int[]);
void del(内部位置);
无效反向();
void display();
无效搜索(int num);
};
void数组::填充(int a[])
{
对于(int i=0;i=pos;i--)
{
arr[i]=arr[i-1];
arr[i]=num;
}
}
无效数组::del(int-pos)
{
对于(int i= pOS;i请详细说明您的问题。如果您只需要一个好的容器,请看STL(标准模板库)STD::vector。它是C++标准的一部分,附带编译器。
如果您想学习如何编写自定义类,请尽量在问题中更加精确
还考虑网络上提供的初学者教程的丰富性,例如:
下面是一个小示例,介绍如何编写一个自定义类,其中一个成员函数调用另一个成员函数并访问私有数据成员(请注意,在成员函数中,您可以直接引用任何其他成员):
#包括
课例
{
私人:
输入一些私密的东西;
公众:
示例();
空函数_a();
空洞函数_b();
};
示例::示例(){
一些私人物品=1;
}
void示例::函数_a(){
标准::cout
我喜欢在我的应用程序中使用insert方法
填充方法。有人能指导我吗
关于这个
这意味着,您不需要直接而高效的“从一个数组复制到另一个数组”方法,而是使用正确的索引来代替赋值,为输入的每个值调用insert
要从方法内部对当前实例调用方法,请执行以下操作:
insert(x, y);
//or
this->insert(x, y);
您的代码还包含一个错误,因为您在main中传递了一个错误的类型来填充。它期望int*
(一个实数组),不是一个数组
对象。有人修复了格式设置::p您发布的代码显示不正确。您能修复它吗?这么说-为什么不使用std::vector而不是自定义类?老实说,在我看来更像是一个类ArrayList;-)方法insert()和del()似乎更像列表而不是数组。Maxood,如果这是家庭作业,请将其标记为家庭作业。如果不是,请使用std::vector
。您正在“重新发明轮子”-使用STL vector类或承认这是家庭作业。
insert(x, y);
//or
this->insert(x, y);