std::list::splice

来自cppreference.com
< cpp‎ | container‎ | list

 
 
 
std::list
成员函数
原文:
Member functions
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
list::list
list::~list
list::operator=
list::assign
list::get_allocator
元素的访问
原文:
Element access
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
list::front
list::back
迭代器
原文:
Iterators
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
list::begin
list::cbegin

(C++11)
list::end
list::cend

(C++11)
list::rbegin
list::crbegin

(C++11)
list::rend
list::crend

(C++11)
容量
原文:
Capacity
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
list::empty
list::size
list::max_size
修饰符
原文:
Modifiers
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
list::clear
list::insert
list::emplace(C++11)
list::erase
list::push_front
list::emplace_front(C++11)
list::pop_front
list::push_back
list::emplace_back(C++11)
list::pop_back
list::resize
list::swap
操作
原文:
Operations
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
list::merge
list::splice
list::remove
list::remove_if
list::reverse
list::unique
list::sort
 
void splice(const_iterator pos, list& other);
(1)
void splice(const_iterator pos, list&& other);
(1) (C++11 起)
void splice(const_iterator pos, list& other, const_iterator it);
(2)
void splice(const_iterator pos, list&& other, const_iterator it);
(2) (C++11 起)
void splice(const_iterator pos, list& other,
            const_iterator first, const_iterator last);
(3)
void splice(const_iterator pos, list&& other,
            const_iterator first, const_iterator last);
(3) (C++11 起)

将一个列表中的元素移动到另外一个列表中.

元素不会被复制。未定义操作将会出现,如果get_allocator() != other.get_allocator()。没有迭代器或者引用会失效,迭代器将会重新属于*this,不是other.

1)
将所有的元素other*this。前pos所指向的元素,这些元素被插入。在手术后变成空容器other。的行为是不确定的,如果this == &other.
原文:
Moves all elements from other into *this. The elements are inserted before the element pointed to by pos. The container other becomes empty after the operation. The behavior is undefined if this == &other.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里


2)
移动元素所指向的itother*this。前pos所指向的元素,该元素被插入.
原文:
Moves the element pointed to by it from other into *this. The element is inserted before the element pointed to by pos.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
3)
[first, last)other*this移动的范围中的元素。前pos所指向的元素,这些元素被插入。 pos是不确定的,如果是一个迭代的范围内[first,last)的行为.
原文:
Moves the elements in the range [first, last) from other into *this. The elements are inserted before the element pointed to by pos. The behavior is undefined if pos is an iterator in the range [first,last).
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

目录

[编辑] 参数

pos -
元素之前的内容将被插入
原文:
element before which the content will be inserted
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
other -
另一个容器中的内容移动
原文:
another container to move the content from
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
it -
other*this的元素
原文:
the element to move from other to *this
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
first, last -
other*this的元素范围
原文:
the range of elements to move from other to *this
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

[编辑] 返回值

(无)
原文:
(none)
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

[编辑] 复杂性

1-2)
恒定
原文:
Constant.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
3)
常量,如果this == &other,否则线性std::distance(first, last).
原文:
Constant if this == &other, otherwise linear in std::distance(first, last).
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

[编辑] 为例

#include <iostream>
#include <list>
 
std::ostream& operator<<(std::ostream& ostr, const std::list<int>& list)
{
    for (auto &i : list) {
        ostr << " " << i;
    }
    return ostr;
}
 
int main ()
{
    std::list<int> list1 = { 1, 2, 3, 4, 5 };
    std::list<int> list2 = { 10, 20, 30, 40, 50 };
 
    auto it = list1.begin();
    std::advance(it, 2);
 
    list1.splice(it, list2);
 
    std::cout << "list1: " << list1 << "\n";
    std::cout << "list2: " << list2 << "\n";
 
    list2.splice(list2.begin(), list1, it, list1.end());
 
    std::cout << "list1: " << list1 << "\n";
    std::cout << "list2: " << list2 << "\n";
}

输出:

list1:  1 2 10 20 30 40 50 3 4 5
list2:
list1:  1 2 10 20 30 40 50
list2:  3 4 5

[编辑] 另请参阅

合并两个已排序的列表
(公共成员函数) [edit]
删除元素满足特定条件
原文:
removes elements satisfying specific criteria
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公共成员函数) [edit]