C++ STL 語法? |
尚未結案
|
asd98537
一般會員 發表:27 回覆:25 積分:10 註冊:2002-10-23 發送簡訊給我 |
struct RANK
{
int a;
int b;
} list[RANK] mylist; mylist.psuh_back(...)
假設push N個 RANK struct
然後
vector[RANK *] myvec;
myvec想要儲存mylist每個元素的address 除了以下這種寫法外
list[RANK]::iterator ptr;
for(ptr=mylist.begin(),ptr!=mylist.end(); ptr)
myvec.push_back(& (*ptr)); 可以用copy或for_each的方式辦到吗?
how to ?
thx! 發表人 - asd98537 於 2003/04/25 17:16:18
|
Royce520
高階會員 發表:18 回覆:157 積分:100 註冊:2002-09-13 發送簡訊給我 |
|
asd98537
一般會員 發表:27 回覆:25 積分:10 註冊:2002-10-23 發送簡訊給我 |
提供個解答參考
寫一個functor
class PTR_RANK_INSERTER
{
public:
PTR_RANK_INSERTER(vector[RANK *]& v) : _v(v) {}
void operator()(RANK &i)
{
_v.push_back(&i);
}
private:
vector[RANK *]& _v;
}; vector[RANK *] vec;
for_each(mylist.begin(), mylist.end(), PTR_RANK_INSERTER(vec)); 發表人 - asd98537 於 2003/04/26 03:01:50
|
Royce520
高階會員 發表:18 回覆:157 積分:100 註冊:2002-09-13 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |