在C ++ STL中列出swap()
给出的任务是显示STL中C++中的功能列表swap()函数。
什么是STL中的列表?
列表是允许在任何地方按顺序进行恒定时间插入和删除的容器。列表被实现为双链表。列表允许不连续的内存分配。与数组,向量和双端队列相比,列表在容器中的任何位置执行元素的插入提取和移动效果更好。在列表中,直接访问该元素的速度很慢,并且列表类似于forward_list,但是转发列表对象是单个链接列表,并且只能迭代转发。
什么是swap()?
此函数用于将一个列表的元素与另一列表交换,并且两者具有相同的数据类型和大小。
语法:listname1.swap(listname2)
示例
Input List1: 50 60 80 90 List2: 90 80 70 60 Output After swapping operation List1: 90 80 70 60 List2: 50 60 80 90 Input List1: 45 46 47 48 49 List2: 50 51 52 53 54 Output After swapping Operation List1: 50 51 52 53 54 List2: 45 46 47 48 49
可以遵循的方法
首先我们初始化两个List。
然后我们打印两个列表。
然后我们定义swap()函数。
最后,我们在交换操作后打印了两个列表。
通过使用上述方法,我们可以交换两个列表。
示例
// C++ code to demonstrate the working of list swap( ) function in STL #include<iostream.h> #include<list.h> Using namespace std; int main ( ){ //初始化两个列表 List<int> list1 = { 10, 20, 30, 40, 50 }; cout<< “ List1: “; for( auto x = list1.begin( ); x != list1.end( ); ++x) cout<< *x << “ “; List<int> list2 = { 40, 50, 60, 70, 80 }; cout<< “ List2: “; for( auto x = list2.begin( ); x != list2.end( ); ++x) cout<< *x << “ “; //定义swap()函数 list1.swap(list2); cout<< “ After swapping List1 is :”; for(auto x = list1.begin( ); x != list1.end( ); ++x) cout<< *x<< “ “; cout<< “ After swapping List2 is :”; for(auto x = list1.begin( ); x!= list2.end( ); ++x) cout<< *x<< “ “; return 0; }
输出结果
如果我们运行上面的代码,那么它将生成以下输出
Input - List1: 10 20 30 40 50 List2: 40 50 60 70 80 Output - After swapping List1 is: 40 50 60 70 80 After swapping List2 is: 10 20 30 40 50
示例
// C++ code to demonstrate the working of list swap( ) function in STL #include<iostream.h> #include<list.h> Using namespace std; int main ( ){ //初始化两个列表 list<int> list1 = { 11, 12, 13, 14, 15 }; cout<< “ List1: “; for( auto x = list1.begin( ); x != list1.end( ); ++x) cout<< *x << “ “; List<int> list2 = { 16, 17, 18, 19, 20 }; cout<< “ List2: “; for( auto x = list2.begin( ); x != list2.end( ); ++x) cout<< *x << “ “; //定义swap()函数 list1.swap(list2); cout<< “ After swapping List1 is :”; for(auto x = list1.begin( ); x != list1.end( ); ++x) cout<< *x<< “ “; cout<< “ After swapping List2 is :”; for(auto x = list1.begin( ); x!= list2.end( ); ++x) cout<< *x<< “ “; return 0; }
输出结果
如果我们运行上面的代码,那么它将生成以下输出
Input - List1: 11 12 13 14 15 List2: 16 17 18 19 20 Output - After swapping List1 is: 16 17 18 19 20 After swapping List2 is: 11 12 13 14 15