一、头文件引用
#include <list>
#include <string>
using namespace std;
二、结构体示例
struct preMedInfo
{
int medId;
string medName;
string medNum;
string medUnit;
string medFactory;
string medTypeUnit;
};
struct ManualMedicine
{
int preId;
list<preMedInfo> lstMed;
};
三、使用迭代器reverse_iterator修改
iterator不能修改双向链表(list)结构体对象(struct)指定成员的数据,需要通过一层一层插入(Insert)新的结构体对象(struct),擦除(erase)旧的结构体对象(struct)来解决。使用reverse_iterator就可以直接修改双向链表(list)结构体对象(struct)指定成员的数据
void Main()
{
list<ManualMedicine> lMM;
preMedInfo pMI;
pMI.medId = 0;
pMI.medNum = "2";
ManualMedicine MM;
MM.preId = 1111;
MM.lstMed.push_back(pMI);
lMM.push_back(MM);
list<ManualMedicine>::reverse_iterator iter;
list<preMedInfo>::reverse_iterator iterMI;
for (iter = lMM.rbegin(); iter != lMM.rend(); iter++)
{
for (iterMI = iter->lstMed.rbegin(); iterMI != iter->lstMed.rend(); iterMI++)
{
iterMI->medNum = "3";
}
}
}