Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在c+中存储类对象+; < C++ > 中是否存在一种方法来存储类对象在数组或向量< /代码>中?_C++_Arrays_Vector - Fatal编程技术网

在c+中存储类对象+; < C++ > 中是否存在一种方法来存储类对象在数组或向量< /代码>中?

在c+中存储类对象+; < C++ > 中是否存在一种方法来存储类对象在数组或向量< /代码>中?,c++,arrays,vector,C++,Arrays,Vector,我有一节课我正在写一些基本的分数数学 Fraction fraction_1(a,b); 有没有一种方法可以存储每一个分数,这样我就可以在以后的程序中加、减、乘所有分数 理想情况下,我希望能够只说List[2]+List[3](这将使用重载运算符进行分数加法) 我完全陷入困境,试图找出一个很好的方法来做这件事,因为我在C++中没有很多经验。 你可能需要重载运算符+,-,乘法和除法,以便按你想要的方式工作。< /P> 您可以在容器(如vector)中存储任何类型的数据,因为它们是模板化的 vec

我有一节课我正在写一些基本的分数数学

Fraction fraction_1(a,b);
有没有一种方法可以存储每一个分数,这样我就可以在以后的程序中加、减、乘所有分数

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


<>我完全陷入困境,试图找出一个很好的方法来做这件事,因为我在C++中没有很多经验。

你可能需要重载运算符+,-,乘法和除法,以便按你想要的方式工作。< /P> 您可以在容器(如vector)中存储任何类型的数据,因为它们是模板化的

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

array2.push_back(array[0] + array[1]);
矢量阵列;
数组。推回(分数(10,20));
数组。推回(分数(30,40));
array2.push_back(数组[0]+数组[1]);

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

您可以在容器(如vector)中存储任何类型的数据,因为它们是模板化的

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

array2.push_back(array[0] + array[1]);
矢量阵列;
数组。推回(分数(10,20));
数组。推回(分数(30,40));
array2.push_back(数组[0]+数组[1]);

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

std::vector<Fraction> fv;

fv.push_back(Fraction(a, b));
fv.push_back(Fraction(a, c));
fv.push_back(Fraction(d, c));
std::向量fv;
fv.推回(分数(a,b));
fv.推回(分数(a,c));
fv.推回(分数(d,c));

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

std::vector<Fraction> fv;

fv.push_back(Fraction(a, b));
fv.push_back(Fraction(a, c));
fv.push_back(Fraction(d, c));
std::向量fv;
fv.推回(分数(a,b));
fv.推回(分数(a,c));
fv.推回(分数(d,c));

您可以使用与任何内置类型完全相同的方法来执行此操作。i、 e

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";
std::vector foo;
向量条;
std::载体baz;
foo.推回(1);
向后推(我的类对象);
推回(“你好”);
foo[0]=2;
条[0]=我的其他对象;
baz[0]=“世界”;

您可以使用与任何内置类型完全相同的方法来执行此操作。i、 e

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";
std::vector foo;
向量条;
std::载体baz;
foo.推回(1);
向后推(我的类对象);
推回(“你好”);
foo[0]=2;
条[0]=我的其他对象;
baz[0]=“世界”;

是的,向量保持类对象与任何其他对象完全相同。我很难理解你的问题。你到底有什么问题?你试过什么?请将这些内容编辑到问题中。查看包含C++标准库容器的任何基本教程。是的,向量保持类对象与任何其他对象完全相同。我很难理解你的问题。你到底有什么问题?你试过什么?请将这些内容编辑到问题中。查看包含C++标准库容器的任何基本教程。OP似乎已经有重载运算符,但不知道如何使用向量。根据您使用的成员函数,有各种各样的要求。OP似乎已经有重载运算符,但不知道如何使用向量。不是任何类型。根据您使用的成员函数,有各种要求。