[問題] vector中含自創class的pointer
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Dev-C++
問題(Question):
自己創了一個 class Agent 其中的 data member 沒有 pointer
另創了一個 class CS 其中的 data member 想要含有:
1. vector<Agent> member
2. vector< vector<Agent*> > structure
而 structure 當中的 vector<Agent*> 中的 Agent* 含的位置
就是 member 裡的 Agent 地址
請問要怎麼達成呢??
程式碼(Code):
class CS //brief for coalition structure
{
public:
CS(int);
~CS();
....
private:
int size;
vector< Agent > member;
vector< vector<Agent*> > structure; // { {2,3},{1},{4,5} }
};
CS::CS(int n)
{
vector<Agent*> onlyone; //初始狀態 structure 只含一個 vector
for(int i=1;i<=n;i++){
Agent agent(i); //初始化 agent 的 id
member.push_back(agent);
onlyone.push_back( &(member.at(i-1)) ); //應該是這行有問題
}
structure.push_back(onlyone);
size = n;
cout<<member[0].id()<<endl; //印出 1
cout<<onlyone[0]->id()<<endl; //印出亂數
cout<<structure[0].at(0)->id()<<endl; //印出亂數
}
而且還得確保 constructor 結束之後
member 和 structure 的內容有正確對應到才行
應該怎麼修正呢
先謝謝大家了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.45.229.36
→
03/15 21:23, , 1F
03/15 21:23, 1F
→
03/15 21:24, , 2F
03/15 21:24, 2F
→
03/15 21:25, , 3F
03/15 21:25, 3F
→
03/15 21:30, , 4F
03/15 21:30, 4F
→
03/15 21:31, , 5F
03/15 21:31, 5F
→
03/15 21:32, , 6F
03/15 21:32, 6F
→
03/15 21:32, , 7F
03/15 21:32, 7F
→
03/15 21:34, , 8F
03/15 21:34, 8F
→
03/15 23:44, , 9F
03/15 23:44, 9F
→
03/16 00:00, , 10F
03/16 00:00, 10F
→
03/16 00:41, , 11F
03/16 00:41, 11F
→
03/16 00:41, , 12F
03/16 00:41, 12F
推
03/16 01:56, , 13F
03/16 01:56, 13F
推
03/16 10:22, , 14F
03/16 10:22, 14F
→
03/16 13:01, , 15F
03/16 13:01, 15F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):