STL向量阵列

STL Vectors array

本文关键字:阵列 向量 STL      更新时间:2023-10-16

例如,我有一个类名称。

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 insern。

如何开始使用此矢量数组?这样我就可以使用setx,getx和all?

您只需要声明

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 书籍)。