swap交换的是变量标识符还是元素?
list<int> ilst1(10, 2);
list<int> ilst2(10, 3);
list<int>::iterator iter1 = ilst1.begin();
list<int>::iterator iter2 = ilst2.begin();
ilst1.swap(ilst2);
cout << "指向原来list1第一个元素的迭代器现在的值: " << *iter1
<< "\n指向原来list2第一个元素的迭代器现在的值: " << *iter2 << endl;
按书上的说法是:
交换内容:调用完函数后,list1中存放的是list2原来的元素,list2中存放的则是list1原来的元素.list1和list2类型必须相同.改函数的执行速度通常比将list2中的元素复制到list1操作快.
请问到底是交换的元素还是交换了list1和list2这两个变量标识符.如果是交换的元素.怎么可能指向原来位置的迭代器指向的还是同一个值?如果是交换变量标识符,又是怎么做到的?
...全文
相关推荐
64学时C/C++语言练习
64学时c/c++练习。
JS实现的几个常用算法
(1)数组去重 原理:定义一个对象obj,然后把数组元素作为obj的属性名,利用属性名是否重复进行判重 var unique = function(arr){ let obj = {}; let newArr = []; arr.forEach(function(x){ if(!obj[x]){ //如果对象中没有该元素对应的属性 obj[x] = true; newArr.push(x); } }); return newArr; } (2)使用快速排序算法对数组进行排序 这里面包括两种效果,一种是利用快排的特性实现了去重快排,另
c++的一些有关考试的习题
c++的一些有关习题。对于初学者来说或者正在考证的同学来说可能是用帮助的
嵌入式单片机软件试题 单片机
单片机测试题
Linux添加swap分区的方法
主要介绍了Linux添加swap分区的方法,首先需要我们建立一个普通的linux 分区,具体实例代码,大家跟随脚本之家小编一起看看吧


