例如,我有一个类名 Point。
class Point{
protected:
int x, y;
public:
void setX(int);
void setY(int)
int getX();
int getY();
}
void Point::setX(int newX)
{
x = newX;
}
里面有setX、getX、setY、getY。
如何用这个开始一个向量数组?这样我就可以使用 setX,getX 和所有?
例如,我有一个类名 Point。
class Point{
protected:
int x, y;
public:
void setX(int);
void setY(int)
int getX();
int getY();
}
void Point::setX(int newX)
{
x = newX;
}
里面有setX、getX、setY、getY。
如何用这个开始一个向量数组?这样我就可以使用 setX,getX 和所有?
你只需要声明一个
vector<Point> myPoints;
我建议您向您的类添加一个构造函数,该构造函数将点的坐标作为参数:
class Point {
public:
Point(int xx, int yy) : x(xx), y(yy) {}
// Other things
}
然后你可以使用添加点到你的向量
myPoints.push_back(Point(10, 42));
一旦你的向量被填充,你就可以使用你的函数获取内部点的坐标。例如:
for (int i = 0; i < myPoints.size(); ++i) {
cout << myPoints[i].getX() << ", " << myPoints[i].getY() << endl;
}
只需包含vector
并使用向量函数。
#include <iostream>
#include <vector>
/* .... */
size_t number_of_elements = 100;
std::vector<Point> myPointVector(number_of_elements);
for(unsigned i = 0; i < myPointVector.size(); ++i){
myPointVector[i].setX(i);
myPointVector[i].setY(number_of_elements - i);
}
for(unsigned i = 0; i < myPointVector.size(); ++i){
std::cout << "Vector " << i << ": ";
std::cout << myPointVector[i].getX() << ", ";
std::cout << myPointVector[i].getY() << std::endl;
}
如果上面的代码让你感到困惑,我建议你阅读一本很好的 C++ 容器/迭代器/算法介绍(或者一般来说是一本很好的 C++ 书籍)。