C++中的splice函數用于將一個list中的元素轉移到另一個list中,或者在同一個list中移動元素位置。splice函數的用法如下:
void splice (iterator position, list& x);
void splice (iterator position, list& x, iterator i);
void splice (iterator position, list& x, iterator first, iterator last);
與其他函數配合使用時,可以利用splice函數實現一些常見的操作,比如合并兩個list,刪除某個范圍內的元素等。下面是一些示例:
list<int> list1 = {1, 2, 3};
list<int> list2 = {4, 5, 6};
list1.splice(list1.end(), list2);
// 現在list1中的元素為 {1, 2, 3, 4, 5, 6},list2為空
list<int> mylist = {1, 2, 3, 4};
auto it = mylist.begin();
advance(it, 2);
mylist.splice(mylist.begin(), mylist, it);
// 現在mylist中的元素為 {3, 1, 2, 4}
list<int> mylist = {1, 2, 3, 4, 5};
auto it1 = mylist.begin();
auto it2 = mylist.begin();
advance(it1, 2);
advance(it2, 4);
mylist.splice(mylist.begin(), mylist, it1, it2);
// 現在mylist中的元素為 {3, 4, 1, 2}
通過結合splice函數和其他函數的使用,可以實現更多復雜的list操作。