1

たとえば、クラス名 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、およびすべてを使用できるようにするには?

4

2 に答える 2

3

を宣言するだけです。

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;
}
于 2012-11-11T10:49:56.427 に答える
1

ベクトル関数を含め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++ の優れた本) を読むことをお勧めします。

于 2012-11-11T10:51:09.533 に答える