将一系列整数放入类的最佳方法是什么?
What is the best way to get a series of integers into a class?
我们的任务是有一个类,一次接收一个整数值。有了这些整数值,我应该做很多不同的事情。将它们相加,取平均值,找到最大值和最小值等。我可以编写平均值和最大值的函数等等,但这是我正在努力的开始。
如何将用户输入输入到我的类中?我有一个成员函数和构造函数。函数"next"是我将用来存储和提取我的数字的函数:
class Statistician{
public:
Statistician();
void next (int r);
}
我试图在"next"函数中编写一个 for 循环,该循环将填充和数组,以便将每个值放入类中,但这似乎是一种非常乏味的继续方式。我不确定接下来会发生什么。
我应该使用数组吗,如果是,我将如何编写循环以便一次可以放入一个数字?还是有其他方法可以做到这一点?类会自动填充吗?(这似乎不太可能(
"最佳"方式是相当固执己见的。 有些人认为最好的方法是使用硬编码数组(非常适合调试(。 有些人喜欢从文件中读取数字(一致,不需要大量键入(。 其他人使用标准输入。 还有其他方法,例如从设备读取。
通常,要将数字放入类中,请使用输入法。 重载operator>>
是一种常见的技术。
下面是一个例子:
struct Statistician
{
std::vector<int> numbers;
friend std::istream& operator>>(std::istream& input, Statistician& s);
};
std::istream& operator>>(std::istream& input, Statistician& s)
{
int n;
while (input >> n)
{
s.numbers.push_back(n);
}
return input;
}
您始终可以在另一个函数中输入数据,然后将数据传递给您的统计师类。
编辑 1:不同的方法
如果您对重载运算符过敏,可以声明一个输入函数:
struct Statistician
{
std::vector<int> numbers;
void input_data(std::istream& input);
};
void Statistician::input_data(std::istream& input)
{
int n;
while (input >> n)
{
numbers.push_back(n);
}
}
假设它是类的伪代码:
class Statistician {
Statistician();
void next(int* a);
};
这是你主要的Psudo代码:
int main() {
int arraySize = 10;
int anArray[arraySize];
for (int i=0; i < arraySize; ++i) {
cin >> anArray[i];
}
Statistician obj;
obj.next(anArray);
}
这里我使用的是内置数组(C样式(,如果需要,可以使用<数组>数组>类。
试着在C++深处学习每一件事,因为这真的很重要;)(我会推荐你Deitel C++ 如何编程(
相关文章:
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 实现无开销push_back的最佳方法是什么
- 在C++中向零方向近似的最佳方法
- 使用不同的CRT将新的C++代码与旧的(二进制)组件隔离开来的最佳方法是什么
- 检测win32服务创建和删除的最佳方法
- 在C++中样板"冷/never_inline"错误处理技术的最佳方法是什么?
- 在 c++ 中对类中的 c 字符串动态数组进行排序的最佳方法是什么?
- 将线程中的数据存储到全局容器的最佳方法?
- 将一系列整数放入类的最佳方法是什么?
- 在派生类中使用基类的私有成员变量的最佳方法
- 在 C++ 中将非指定类型作为参数传递的最佳方法?
- Qt - QVector 和模型视图 - 从列表视图获取自定义类的最佳方法是什么?
- 使用 Git 处理 C++ Visual Studio 2019 解决方案的外部依赖项源代码管理的最佳方法是什么?
- 比较两个节点坐标的最佳方法是什么?
- 在nodejs中使用本机代码的最佳方法是什么?
- 将 pybind11 绑定标记为已弃用的最佳方法
- C++:将向量传递到构造函数以创建成员变量的最佳方法?
- C++中变量混叠的最佳方法
- 读取大文件(>2GB)(文本文件包含以太网数据)并通过不同参数随机访问数据的最佳方法是什么?