给出的任务是显示STL中C ++中的功能列表operator = function。
什么是STL中的列表?
列表是允许在任何地方按顺序进行恒定时间插入和删除的容器。列表被实现为双链表。列表允许不连续的内存分配。与数组,向量和双端队列相比,列表在容器中的任何位置执行元素的插入提取和移动效果更好。在列表中,对元素的直接访问很慢,并且列表类似于forward_list,但是转发列表对象是单个链接列表,并且只能迭代转发。
运算符=的用途是什么?
此运算符用于通过替换列表中的现有元素来将新元素分配给列表。并根据内容修改新列表的大小。我们从中获取新元素的另一个容器具有与第一个容器相同的数据类型。
语法:listname1 = listname2
示例
Input List1: 50 60 80 90 List2: 90 80 70 60 Output List1: 90 80 70 60 Input List1: E N E R G Y List2: C A P T I O N Output List1: C A P T I O N
可以遵循的方法
首先我们初始化两个List。
然后我们使用=运算符。
然后我们打印新列表。
通过使用上述方法,我们可以将新元素分配给列表。该操作符的工作原理与swap()函数相似,该操作符将list2的内容与list1交换,但是不将list1的内容与list2交换,也不将新内容分配给list1。
示例
// C++ code to demonstrate the working of list = operator 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 << “ “; list1 = list2; //打印列表的新内容 cout<< “ List1的新内容是:”; for(auto x = list1.begin( ); x != list1.end( ); ++x) cout<< *x<< “ “; return 0; }
输出结果
如果我们运行上面的代码,那么它将生成以下输出
Input - List1: 10 20 30 40 50 List2: 40 50 60 70 80 Output - New content of List1 is: 40 50 60 70 80
示例
// C++ code to demonstrate the working of list = operator in STL #include<iostream.h> #include<list.h> Using namespace std; int main ( ){ //初始化两个列表 list<char> list1 = { 'C', 'H', 'A', 'R', 'G', 'E', 'R' }; cout<< " List1: "; for( auto x = list1.begin( ); x != list1.end( ); ++x) cout<< *x << " "; List<char> list2 = { 'P', 'O', 'I', 'N', 'T' }; cout<< " List2: "; for( auto x = list2.begin( ); x != list2.end( ); ++x) cout<< *x << " "; list1 = list2; //打印列表的新内容 cout<< " List1的新内容是:"; for(auto x = list1.begin( ); x != list1.end( ); ++x) cout<< *x<< " "; return 0; }
输出结果
如果我们运行上面的代码,那么它将生成以下输出
Input - List1: C H A R G E R List2: P O I N T Output - New contents of List1 is: P O I N T