0

有没有办法将类对象存储在 C++arrayvectorC++ 中?

我正在写一门课来做一些基本的分数数学。

Fraction fraction_1(a,b);

有没有办法存储每个分数,以便我以后可以在程序中添加、减去、乘以所有分数?

理想情况下,我希望能够说List[2] + List[3](这将使用我的重载运算符进行分数加法)?

我完全被困在试图找出一个好的方法来做到这一点,因为我对 C++ 中的向量没有太多经验。

4

3 回答 3

2

是的,您可以定义一个向量并将您的元素添加到其中:

std::vector<Fraction> fv;

fv.push_back(Fraction(a, b));
fv.push_back(Fraction(a, c));
fv.push_back(Fraction(d, c));
于 2012-10-18T20:36:23.090 回答
1

您可以按照与任何内置类型完全相同的方式执行此操作。IE

std::vector<int> foo;
std::vector<MyClass> bar;
std::vector<std::string> baz;

foo.push_back(1);
bar.push_back(my_class_object);
baz.push_back("hello");

foo[0] = 2;
bar[0] = my_other_object;
baz[0] = "world";
于 2012-10-18T20:36:26.647 回答
0

您可能必须重载运算符 +、-、乘法和除法,才能按您希望的方式工作。

您可以将任何类型的数据存储在容器中,例如向量,因为它们是模板化的。

vector <Fraction> array;
array.push_back(Fraction(10, 20));
array.push_back(Fraction(30, 40));

array2.push_back(array[0] + array[1]);
于 2012-10-18T20:36:06.490 回答