Создание двух векторов из пары точек - PullRequest
0 голосов
/ 15 апреля 2020

В моем коде у меня есть следующий шаблон

template <typename T> struct VectorXY {

    std::vector<T> x;
    std::vector<T> y;
};

В другом файле cpp я создаю пару точек x и y, как показано ниже (Это пример, а не фактический код. создается в a для l oop): xy_points = ((x1,y1), (x2,y2), (x3,y3)) и т. д.

Теперь я хочу извлечь все значения x, такие как x1, x2, x3 et c. и сохраните их в x_vector, как показано выше в шаблоне. Точно так же я хочу сделать это для значений y, таких как y1, y2, y3, и сохранить их в y_vector.

Edit :

template <typename T> 
static Point2D<T>::VectorXY<T> create_x_y_vectors(const std::vector<Point2D<T>> point_vector)
{

    VectorXY<T> xy_vec;

    std::vector<std::pair<T, T>> xy_points(point_vector.size());    

    for (size_t i = 0; i < point_vector.size(); ++i) {

        xy_points[i] = std::make_pair(point_vector[i].x(), point_vector[i].y());

        // This is still incomplete. Hence there is no return value.

    }

К сожалению, я не могу поделиться класс Point2D здесь, но то, что делает эта функция, как описано выше, создает точки вроде: ((x1, y1), (x2, y2), (x3, y3)) et c ..

I хотел бы теперь извлечь точки x1, x2, x3 и сохранить их в x_vector в шаблоне и аналогичным образом сделать это для y1, y2 и y3.

И вот где я не в курсе. Как мне go хранить значения x и y в соответствующих векторах? Также я хочу вернуть xy_ve c из функции.

Спасибо. Мне нужна твоя помощь.

Ответы [ 2 ]

1 голос
/ 15 апреля 2020

В for-l oop, где вы создаете свои 2D точки, почему бы не добавить значения x немедленно в xv_ve c, используя

xv_vec.x.push_back(x_value);

и значения y в похожая мода?

0 голосов
/ 15 апреля 2020

Возможно что-то в этом роде:

for (auto point: xv_vec) // Assuming point type is small {
    x.push_back(point.x);
    y.push_back(point.y);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...