允许用户在我的类中定义数组大小而不是使用固定变量的最佳方法是啥,在这种情况下为 8
Posted
技术标签:
【中文标题】允许用户在我的类中定义数组大小而不是使用固定变量的最佳方法是啥,在这种情况下为 8【英文标题】:What is the best way to allow the user to define an array size in my class instead of having a fixed variable, in this case 8允许用户在我的类中定义数组大小而不是使用固定变量的最佳方法是什么,在这种情况下为 8 【发布时间】:2018-12-17 23:19:08 【问题描述】:这是我的代码
#include <iostream>
using namespace std;
class array
private:
int arr[8];
int max;
int min;
public:
void get_arr();
void maxmin();
void display();
;
void array::get_arr()
int size;
cout << "How many elements would you like to enter?";
cin >> size;
cout << "Enter elements: " << endl;
for (int i = 0; i < size; i++)
cin >> arr[i];
max = arr[0];
min = arr[0];
void array::maxmin()
for (int i = 0; i < 8; i++)
if (max < arr[i])
max = arr[i];
if (min > arr[i])
min = arr[i];
void array::display()
cout << "Largest is " << max;
cout << "Smallest is " << min;
int main()
array obj;
obj.get_arr();
obj.maxmin();
obj.display();
到目前为止,我的代码可以编译并正常工作。然而,我对使用类还很陌生,并且正在研究这样的示例问题以习惯以这种方式格式化代码。我正在寻找有关如何最有效地格式化我的代码以获取用户输入的数组“大小”变量并将其实现到我的函数中的指针。
【问题讨论】:
也许只用std::vector
?
在这里获得评论:code review
如果您不想要std::vector
,请查找new
和delete
。还要查看 三法则 和 copy&swap idiom,因为它们对于正确使用 new
/delete
至关重要。
澄清一下:您的工作代码具有固定大小的数组。现在您想修改现有代码以允许用户指定尺寸吗?
梅森,我不得不请你澄清我的怀疑。虽然我没有投反对票,但我不会责怪任何人写下问题并转向更清晰的问题。我建议您重新提出问题以明确您的目标。
【参考方案1】:
我不测试它。试试看:)
class vector
private:
std::vector<int> myvector;
int max;
int min;
public:
void set_arr();
void maxmin();
void display();
;
void array::set_arr() // (set_arr not get_arr)
int myint;
int size;
std::cout << "How many elements would you like to enter?";
cin >> size;
for(int i=0,i<size;i++)
std::cin >> myint;
this->myvector.push_back (myint);
// 使用 this->myvector.size() 求最大值和最小值
【讨论】:
以上是关于允许用户在我的类中定义数组大小而不是使用固定变量的最佳方法是啥,在这种情况下为 8的主要内容,如果未能解决你的问题,请参考以下文章