circle类和班级成员的打印向量发行
Issue with Circle class and printing vector of class members
我的代码有几个问题。
我能够对 radii 的向量进行分类并打印它们,但是它正在围绕数字并切断小数,我不确定如何修复它。
我遇到的另一个问题是试图显示旁边每个半径的区域,我无法正确调用类功能"区域"以显示相应半径旁边的区域。
我很抱歉,我对C 非常陌生,我试图尽我所能解释我的问题。
我知道我的代码有点基本,因此也将不胜感激。同样,也将感谢打印矢量和显示该区域的任何帮助。谢谢。
这是类:
#include <iostream>
#include <iomanip>
#include <vector>
#include <algorithm>
using namespace std;
class Circle {
private:
double radius; // Radius of circle
public:
// Default constructor
Circle() {
radius = 0.0;
}
// Set the radius of the circle
void setRadius(double r) {
radius = r;
}
// Get the radius of the circle
double getRadius() {
return radius;
}
// Calculate the area of the circle using current radius
double area() {
return(3.1416 * radius * radius);
}
};
void printVector(vector<int>);
void bubbleSort(vector<int> &);
这是主要的:
int main(int argc, char** argv) {
cout << "Sorted Vector of Circles" << endl;
cout << "------------------------" << endl;
const int SIZE = 10;
Circle circle;
vector<int> circles;
Circle c1;
c1.setRadius(2.5);
circles.push_back(c1.getRadius());
Circle c2;
c2.setRadius(3.5);
circles.push_back(c2.getRadius());
Circle c3;
c3.setRadius(1.0);
circles.push_back(c3.getRadius());
Circle c4;
c4.setRadius(5.5);
circles.push_back(c4.getRadius());
Circle c5;
c5.setRadius(4.8);
circles.push_back(c5.getRadius());
Circle c6;
c6.setRadius(6.0);
circles.push_back(c6.getRadius());
Circle c7;
c7.setRadius(2.75);
circles.push_back(c7.getRadius());
Circle c8;
c8.setRadius(10);
circles.push_back(c8.getRadius());
Circle c9;
c9.setRadius(0.5);
circles.push_back(c9.getRadius());
Circle c10;
c10.setRadius(9.5);
circles.push_back(c10.getRadius());
bubbleSort(circles);
printVector(circles);
return 0;
}
排序功能:
void bubbleSort(vector<int> &radii){
int temp;
bool swap;
do {
swap = false;
for(int count = 0;count < radii.size()-1; count++){
if (radii[count] > radii[count+1]) {
temp = radii[count];
radii[count] = radii[count + 1.];
radii[count+1] = temp;
swap = true;
}
}
} while (swap);
}
打印功能:
void printVector(vector<int> radii) {
cout << "Radius" << endl;
cout << "" << endl;
for (int count = 0; count < radii.size(); count++) {
cout << setw(2) << radii[count] << setprecision(2) << " " <<
radii[count.area()] << " "; // main issue is with this section of code
cout << endl;
}
}
使用std::vector<double>
代替std::vector<int>
没有什么叫count.area()
。count
是integer
变量而不是Circle
如果要打印区域,则必须将另一个向量向量向量(应该先创建一个(传递给打印功能。
相关文章:
- 必须首先打印向量 v1 中最接近整数 x 的数字<int>
- 如何在 c++ 中打印存档中的对象向量
- 如何在C++中打印对象向量的内容
- 从函数返回向量以打印内容
- 为什么 c++ 不能打印向量 B[0]?
- 打印出对象向量中的每个元素C++
- 有没有办法搜索向量的元素,<String>然后检查它是否包含特定的字符,如果它确实打印了它
- 在结构向量中搜索一个数据成员,然后打印匹配的所有数据成员
- 如何在C 中打印字符串向量的向量
- 如何打印出唯一指针对象向量中的值(基于范围的循环)?C++
- 无法打印字符向量C++向量
- Windbg C 如何打印向量内容
- circle类和班级成员的打印向量发行
- 如何在递归函数中打印向量
- 重载<<运算符打印向量的前n个值(不是整个向量)
- 打印向量 - 空输出
- 打印向量元素错误消息
- 在C 中打印向量阵列
- 如何填充和打印向量集的向量
- 我如何访问和打印向量的向量中的单个元素