(1)先创建两个list
list<CAnsParagraph> * SingleAnsPartParaList = new list<CAnsParagraph>;
list<CAnsParagraph> * SingleAnsPartParaList = new list<CAnsParagraph>;
(2)赋值操作
省略。。。。。。
(3)合并两个list
(*LeadPartParaList).merge(*SingleAnsPartParaList) 完美报错--------由于合并的时候会进行排序,需要重载“<”运算符
两种重载方法:
1.在自定义类型中重载“<”:
bool operator<(CAnsParagraph &ansPara)
{
return false;
}
使用(*LeadPartParaList).merge(*SingleAnsPartParaList)即可。
2.自定义类型
struct MyStructOP
{
bool operator()(CAnsParagraph &ansPara1, CAnsParagraph &ansPara2)
{
return false;
}
};
函数调用:(*LeadPartParaList).merge(*SingleAnsPartParaList, MyStructOP()); 即重载“()”运算符,将排序设置为 false,即按照插入顺序,进行比较即可。
C++列表合并与排序
本文详细介绍了在C++中如何合并两个自定义类型的list,并通过重载小于运算符或使用自定义比较函数来实现正确的排序。这适用于需要对复杂数据结构进行高效管理的情况。
3万+

被折叠的 条评论
为什么被折叠?



