2016-05-22 12 views
1

の配列は、私はCGALに、我々は次のようにPoint_2の要素にアクセスすることができることを知っている:CGAL +ポイント

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;} 

を私はポイントの配列のためにこれをどのように行うことができます。

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;} 

points [i] .x()またはpoints [i] .xがエラーを生成します。

+0

'Vector'は何ですか?なぜあなたは '予約'を呼びますか? 「うまくいかない」とはどういう意味ですか? –

+0

'reserve'はあなたが思っていることをしません。その文書を読んでください。代わりに 'resize'を行ったと仮定すると、' points [0] = Point_2(1.0,1.0); 'を実行することができます。 'reserve'に固執すれば' points.push_back(Point_2(1.0,1.0)); 'となります。 –

答えて

0

友人がコメントで述べたように、あなたが行うことができます:

int main(){ 

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

    }