【发布时间】:2020-02-15 16:39:30
【问题描述】:
我想创建一个初始化数组的类和一个函数push,它将一个元素添加到数组而不是打印它。
作为初学者,我知道初始化有问题,除了函数push 之外,一切正常,它不打印数组。
我的课怎么了?
#include <iostream>
class pile{
public :
int n;
int p[]={};
pile(int m){
n=m;
std::cout<<"Contructor is up .. ";
}
int init(int n){
int z=n-1;
for(int i;i<=z;i++){
std::cin>>p[i];
}
}
int push(int n, int x){
int y=n-1;
int p[]={};
p[n]=x;
for(int u=0;u<=n;u++){
std::cout<<p[u]<<" ";
}
}
};
int main(){
int a;
std::cout<<"How many integers does your array got ? >> ";
std::cin>>a;
pile p1(a);
std::cout<<"\nEnter your array's integers >> ";
p1.init(a);
int j;
std::cout<<"\nInteger that you want to add to the array ? >> ";
std::cin>>j;
std::cout<<"\nThe new array is >> ";
p1.push(a,j);
return 0;
}
【问题讨论】:
-
你想要的是
std::vector,除非你在编译时知道你需要多少元素。 -
我也投票给
std::vector,我想指出空数组在C++中是非法的 -
不要使用 C 风格的数组。如果您在编译时知道尺寸,请使用std::array,否则使用std::vector。