Векторы с шаблонами и структурами - PullRequest
0 голосов
/ 13 апреля 2020

Надеюсь, у вас все хорошо в условиях этого кризиса. Это будет длинный вопрос, но я надеюсь, что вы, ребята, сможете мне помочь.

В настоящее время я пытаюсь понять векторы, шаблоны, структуры. Я создаю функцию с именем create_x_y_vectors (), как вы можете видеть ниже.

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

    // This point object has 2 points, (1, 2) for example
    Point2D<T> point;

    this->operator[](0) = point[0];
    this->operator[](1) = point[1];

    VectorXY<T> xy_vec;

    size_t vec_length = point_vector.size()

    for (size_t i; i < vec_length; ++i) {

            point_vector.emplace_back(this->operator[](0));
            point_vector.emplace_back(this->operator[](1));


            xy_vec.x.emplace_back(point_vector[0])
            xy_vec.y.emplace_back(point_vector[1])

    }

}

Эта функция, как следует из названия, создает векторы x и y из вектора точек.

VectorXY - это шаблон, который я определил, и он включает в себя:

template <typename T> struct VectorXY {

        // This creates a vector of x and Vector of y if the values are pushed back to respective variables, for example:-
        // x: 1 2
        // y: 3 4   
        std::vector<T> x;
        std::vector<T> y;
};

Кроме того, в настоящее время, даже если функция не работает, я использую emplace_back для сохранения нового значения в векторе.

Есть ли способ избежать использования push_back и emplace_back в for для l oop чтобы сохранить значения в векторе?

Здесь я хочу добиться того, чтобы после вызова функции и передачи вектора или точек в качестве аргумента, она создала 2 вектора, x и y. Но я не понимаю, что я делаю правильно, или, возможно, есть более простой способ добиться этого?

Кроме того, когда я пытаюсь скомпилировать это, я получаю следующую ошибку: «VectorXY» не называет типа

Я прошу прощения за то, что задал так много вопросов, но я занимался этим уже несколько дней и до сих пор не могу понять это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...