QList<QPointF>xy rozdzielnie na QList<float>x oraz QList<float>y

0

Cześć !

Mam pytanie jakie przerobić listę QList<QPointF> xy, która posiada dwie kolumny x,y na dwie listy QList<float> x oraz QList<float> y ?
Chciałbym podzielić QList<QPointF> na dwie osobne, pojedyncze listy QList<float> x oraz QList<float> y.

Mam funkcje, która przyjmuje parametry QList<float>. Chciałbym do niej przekazać cześć list dotyczącą samego .x lub .y.
Kombinowałem z "qreal &ry()" ale nie wiem jak to w składnie poprawnie ubrać.

QList<QPointF> xy;

void fun(QList<float> xy.x) <--- chciałbym przekazać tylko x ... bez y...
{

}

1
typedef float xory(const QPointF &p);
void dosomething(const QList<QPointF> &xy,xory *fun)
{
  for(int i=0;i<xy.size();++i) cout<<fun(xy[i])<<endl;
}

float getx(const QPointF &p) { return p.x; }
float gety(const QPointF &p) { return p.y; }

...
QList<QPointF> &xy;
...
dosomething(xy,&getx);
dosomething(xy,&gety);
1

https://godbolt.org/z/8fdePf4e1

To jeszcze C++ czy już Python ? ;)

0
#include <iostream>
#include <list>
#include <iomanip>

using namespace std;

int main()
{
    list<pair<int,int>> xy {{1024,2400}, {15,777}, {333,18}};
    list<int> x, y;

    for(auto el: xy) {
        cout<<setw(6)<<setfill(' ')<<right<<el.first<<" "<<setw(6)<<setfill(' ')<<right<<el.second<<'\n';
        x.push_back(std::move(el.first));
        y.push_back(std::move(el.second));
    }

    cout<<"\nList x: ";for(const auto & el: x)cout<<el<<' ';
    cout<<"\nList y: ";for(const auto & el: y)cout<<el<<' ';
    cout<<'\n';
    return 0;
}


1 użytkowników online, w tym zalogowanych: 0, gości: 1