有没有办法在c ++中的array
或vector
中存储类对象?
我正在写一堂课来做一些基本的分数数学。
Fraction fraction_1(a,b);
有没有办法存储每一个,以便我可以在程序后面添加,减去,乘以所有分数?
理想情况下,我希望能够说List[2] + List[3]
(使用我的重载运算符进行分数加法)?
由于我对c ++中的矢量没有多少经验,所以我完全不知道要想办法这么做。
答案 0 :(得分:2)
是的,您可以定义矢量并将元素添加到其中:
std::vector<Fraction> fv;
fv.push_back(Fraction(a, b));
fv.push_back(Fraction(a, c));
fv.push_back(Fraction(d, c));
答案 1 :(得分:1)
您可以使用与任何内置类型完全相同的方式执行此操作。即。
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";
答案 2 :(得分:0)
你可能需要重载运算符+, - ,乘法和除法才能按照你想要的方式工作。
您可以将任何类型的数据存储在CONTAINER中,例如vector,因为它们是模板化的。
vector <Fraction> array;
array.push_back(Fraction(10, 20));
array.push_back(Fraction(30, 40));
array2.push_back(array[0] + array[1]);