我在將值插入map<int,vector<pair<structA,structB> > >
時遇到問題。 我有2 structA
和structB
我用它來存儲數據。然後使用一對for
循環,我將這些值存儲到映射中。在結構向量映射內存儲值
下面是簡化的代碼:
vector<structB>::iterator b = vecB.begin();
vector<pair<structA,structB> > myVec;
map<int,vector<pair<structA,structB> > > myMap;
for (int i = 1; i < 3; i++) {
for (vector<structA>::iterator a = vecA.begin(); a != vecA.end() ; a++) {
//...do stuff here
//push data into myVec
++b
}
myMap.insert(make_pair(i,myVec));
}
我得到的結果是這樣的myMap
。
爲簡單起見,可以說structA
和structB
分別是PC1-PC10和User1-User20。
int i = 1
PC1:User1
。 。 。
PC10:User10
INT I = 2
PC1:用戶1
。 。 。
PC10:User10
PC1:User11
。 。 。
PC10:User20
myMap
的結果不是我想要的。它應該是這樣的:
int i = 1
PC1:User1
。 。 。
PC10:User10
INT I = 2
PC1:User11
。 。 。
PC10:User20
似乎爲myMap
I = 2,它將包含數值從I = 1爲好。
在將矢量插入地圖之前,我嘗試過myVec.clear()
,但我需要structA
的值保持不變。 因此,如何建議我如何儲存只有的值爲我= 2?
你調用'上'的std :: map' ... – emlai 2015-02-10 16:56:04
@zenith不好意思啊push_back'。我改變它回到'insert'。感謝提醒^^ – 2015-02-11 03:10:59