list::splice()函数详解
来源:互联网 发布:鬼吹灯小说大结局知乎 编辑:程序博客网 时间:2024/04/29 09:54
函数有以下三种声明:
void splice ( iterator position, list<T,Allocator>& x ); //
void splice ( iterator position, list<T,Allocator>& x, iterator i );
void splice ( iterator position, list<T,Allocator>& x, iterator first, iterator last );
函数说明:在list间移动元素:
将x的元素移动到目的list的指定位置,高效的将他们插入到目的list并从x中删除。
目的list的大小会增加,增加的大小为插入元素的大小。x的大小相应的会减少同样的大小。
前两个函数不会涉及到元素的创建或销毁。第三个函数会。
指向被删除元素的迭代器会失效。
参数:
position
目的list的位置,用来标明 插入位置
x
源list、
first,last
x里需要被移动的元素的迭代器。区间为[first, last).
包含first指向的元素,不包含last指向的元素。
例子:
// splicing lists
#include <iostream>
#include <list>
#include <string>
#include <algorithm>
using namespace std;
int main ()
{
list<int> mylist1, mylist2;
list<int>::iterator it;
// set some initial values:
for (int i=1; i<=4; i++)
mylist1.push_back(i); // mylist1: 1 2 3 4
for (int i=1; i<=3; i++)
mylist2.push_back(i*10); // mylist2: 10 20 30
it = mylist1.begin();
++it; // points to 2
mylist1.splice (it, mylist2); // mylist1: 1 10 20 30 2 3 4
// mylist2 (empty)
// "it" still points to 2 (the 5th element)
mylist2.splice (mylist2.begin(),mylist1, it);
// mylist1: 1 10 20 30 3 4
// mylist2: 2
// "it" is now invalid.
it = mylist1.begin();
advance(it,3); // "it" points now to 30
mylist1.splice ( mylist1.begin(), mylist1, it, mylist1.end());
// mylist1: 30 3 4 1 10 20
cout << "mylist1 contains:";
for (it=mylist1.begin(); it!=mylist1.end(); it++)
cout << " " << *it;
cout << "/nmylist2 contains:";
for (it=mylist2.begin(); it!=mylist2.end(); it++)
cout << " " << *it;
cout << endl;
list<string> dictionary, bword;
dictionary.push_back("any");
dictionary.push_back("angle");
dictionary.push_back("ajust");
dictionary.push_back("common");
dictionary.push_back("cannon");
dictionary.push_back("company");
bword.push_back("blue");
bword.push_back("banana");
bword.push_back("break");
list<string>::iterator its = dictionary.begin();
for (int i = 0; i < 3; i++)
its++;
dictionary.splice(its, bword);
copy(bword.begin(), bword.end(), ostream_iterator<string>(cout, "/n"));
return 0;
}
- list::splice()函数详解
- list::splice()函数详解
- list::splice()函数详解
- list::splice()函数详解
- list::splice()函数详解
- list::splice()函数详解
- list 的 splice 函数
- c++ list 容器splice函数
- c++ container list function ----splice(list的成员函数splice)
- list::splice
- js splice数组拼接函数详解
- splice函数
- list的splice注意事项
- std::list::splice
- list的splice方法
- perl的splice函数
- javaScript splice函数
- js的splice() 函数
- 网络请求之HttpURLConnection[不全,以后在补充]
- 分享一个免费的虚拟主机
- SpriteSheet(精灵列表)在Android中的应用
- 蓝桥杯 2015校内选拔试题 第三题:回文素数
- ROC曲线和PR(Precision-Recall)曲线的联系
- list::splice()函数详解
- HDU 3743 Frosh Week(树状数组+离散化)
- java中HashMap,LinkedHashMap,TreeMap,HashTable的区别
- synchronized
- React Native 学习笔记(一)
- Activity生命周期
- 浅谈C++中内存分配、函数调用和返回值问题
- 【bzoj1324】Exca王者之剑 最小割
- Win7系统主题路径