線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1607
推到 Plurk!
推到 Facebook!

struct和vector的疑問

缺席
shao0914
一般會員


發表:9
回覆:5
積分:2
註冊:2003-12-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-03-20 11:23:45 IP:140.115.xxx.xxx 訂閱
小弟有個問題想請教各位前輩

問題大致上是在一張圖上不知道有多少個多邊形,而且每個多邊形的大小不同。
所以我採用的方式是先宣告一個結構,然後用vector去宣告這一個結構,
[code cpp]
struct polydata
{
int polynumber;
vector x_asix; //而該多邊形有多大,就用多大的空間去記錄多邊形的座標。
int x_node;
};
vector polygons;
polydata polynode;

[/code]
其用意在於有多少個多邊形,我就用多少個結構。
但在執行程式時,結構內所宣告的vector卻是「連續」的。

[code cpp]
do
{
...
...
polynode.x_asix.push_back(j);
...
}while(判斷式)
polynode.polynumber=count; //count是指多邊形的編號
polygons.push_back(polynode);
[/code]

即假設我記錄了第一個多邊形的位置有10個,而記錄第二個多邊形的座標時應該要從第二個宣告的結構之vector之0的地方開始儲存,
但卻從vector的第11個位置開始儲存!也就是說前面10的座標值是第一個多邊形的座標!

所以想請各位前輩指導小弟是否在觀念上有何問題,或是給小弟一個可行的方向。
謝謝

編輯記錄
shao0914 重新編輯於 2008-03-20 11:24:45, 註解 無‧
shao0914 重新編輯於 2008-03-20 11:26:04, 註解 無‧
shao0914 重新編輯於 2008-03-20 11:29:31, 註解 無‧
shao0914 重新編輯於 2008-03-20 11:41:53, 註解 無‧
shao0914
一般會員


發表:9
回覆:5
積分:2
註冊:2003-12-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-05-23 10:10:15 IP:140.115.xxx.xxx 訂閱
在重新思考該程式後,終於發現其問題所在。

原來是所宣告之struct內之vector只有一個,所以在每次最終的puch_back()後
再加上polynode.clear()即可以得到所需的答案
系統時間:2024-04-20 19:20:20
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!