合并两个有序受控序列。
void merge(list<Value>% right);
template<typename Pred2>
void merge(list<Value>% right, Pred2 pred);
参数
pred
元素的比较器对。right
组合容器。
备注
第一个成员函数从中移除所有元素序列控件由 right 和插入记录在控件序列。必须由 operator< 以前对两个序列--,当您通过或一个序列,继续组件不能减小值。得到的序列由 operator<还排序。使用此成员函数还将两个序列该增值到承载的顺序和。
第二个成员函数的行为与第一个相同,不同之处在于,序列由 pred 排序-- pred(X, Y) 一定是错误的。按照序列的元素 Y 的所有元素 X 。您使用它包含谓词函数排序的两个序列或委托指定。
两个函数执行一个稳定组合--未对在或元素的原始控件序列中撤消在该发生的控件序列。此外,,如果元素 X 和 Y 对在结果序列的控件具有等效项排序-- !(X < Y) && !(X < Y) --从原始控件序列的元素在从中将一个组件的出现顺序控件由 right。
示例
// cliext_list_merge.cpp
// compile with: /clr
#include <cliext/list>
typedef cliext::list<wchar_t> Mylist;
int main()
{
cliext::list<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'c');
c1.push_back(L'e');
// display initial contents " a c e"
for each (wchar_t elem in c1)
System::Console::Write(" {0}", elem);
System::Console::WriteLine();
cliext::list<wchar_t> c2;
c2.push_back(L'b');
c2.push_back(L'd');
c2.push_back(L'f');
// display initial contents " b d f"
for each (wchar_t elem in c2)
System::Console::Write(" {0}", elem);
System::Console::WriteLine();
// merge and display
cliext::list<wchar_t> c3(c1);
c3.merge(c2);
for each (wchar_t elem in c3)
System::Console::Write(" {0}", elem);
System::Console::WriteLine();
System::Console::WriteLine("c2.size() = {0}", c2.size());
// sort descending, merge descending, and redisplay
c1.sort(cliext::greater<wchar_t>());
for each (wchar_t elem in c1)
System::Console::Write(" {0}", elem);
System::Console::WriteLine();
c3.sort(cliext::greater<wchar_t>());
for each (wchar_t elem in c3)
System::Console::Write(" {0}", elem);
System::Console::WriteLine();
c3.merge(c1, cliext::greater<wchar_t>());
for each (wchar_t elem in c3)
System::Console::Write(" {0}", elem);
System::Console::WriteLine();
System::Console::WriteLine("c1.size() = {0}", c1.size());
return (0);
}
要求
标题: <cliext/列表>
命名空间: cliext