2016-05-22 7 views
1

Ich weiß, dass in CGAL wir Zugriff auf Elemente von Point_2 in der folgenden Art und Weise haben:cgal + Array von Punkten

typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel; 
typedef Kernel::Point_2 Point_2; 
Point_2 points(1.0,1.0); 

int main(){ 
std::cout<<points.x()<<"\t"<<points.y(); 
return 0;} 

aber wie kann ich tun dies für eine Reihe von Punkten:

typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel; 
typedef Kernel::Point_2 Point_2; 
typedef std::vector<Point_2> Vector; 

Vector points; 
points.reserve(N); 

int main(){ 
points[0].x() =1; 
points[0].y() =1; 
return 0;} 

Punkte [i] .x() oder Punkte [i] .x erzeugt Fehler.

+0

Was ist 'VECTOR'? Warum nennst du 'reserve'? Was bedeutet "nicht funktioniert"? –

+0

'reserve' tut nicht, was Sie denken, lesen Sie bitte das Dokument. Angenommen, Sie haben stattdessen 'resize' vorgenommen, können Sie' points [0] = Point_2 (1.0,1.0); '. Wenn Sie bei 'reserve' bleiben, wäre das' points.push_back (Point_2 (1.0,1.0)); '. –

Antwort

0

Als der Freund im Kommentar erwähnt, können Sie tun:

int main(){ 

     points.push_back(Point_2(1.0,1.0)); 
     return 0; 

    }