C++ STL 中的 list swap( )
以下是展示 C++ 中 STL 中 list swap( ) 函数功能的任务。
什么是 STL 中的 list?
List 是允许在序列中的任何位置进行恒定时间插入和删除的容器。List 被实现为双向链表。List 允许非连续内存分配。与数组、vector 和 deque 相比,list 在容器中的任何位置都能更好地执行元素的插入、提取和移动。在 list 中,直接访问元素很慢,list 类似于 forward_list,但 forward list 对象是单链表,并且只能正向迭代。
什么是 swap( )?
此函数用于将一个 list 的元素与另一个 list 的元素进行交换,且两者拥有相同的数据类型和大小。
语法: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。
然后,我们打印这两个 list。
然后,我们定义 swap( ) 函数。
最后,我们在执行交换操作后打印两个 list。
通过使用上述方法,我们可以交换两个 list。
示例
// C++ code to demonstrate the working of list swap( ) function in STL #include<iostream.h> #include<list.h> Using namespace std; int main ( ){ // initializing two lists 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 << “ “; // defining swap( ) function 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 ( ){ // initializing two lists 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 << “ “; // defining swap( ) function 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
广告